我正试图遍历一个字典,该字典本质上包含元组和元组的键,如下所示:
(101940039, 'yoel'): 0.0016034940264139383,
(101940039, 'yossi'): 0.004810482079241815,
(101940039, 'youngmen'): 0.0016034940264139383}
我需要访问键的值,即元组的字符串。我尝试了很多方法,比如转换到字典,使用关键字[0]只会给我"int"对象不可订阅";。。
def matching_score(k, tokens, tf_idf_score):
print("Matching Score")
query_weights = {}
for word in tokens:
for key, value in tf_idf_score.items():
**if key in word**:
try:
query_weights[key[0]] += tf_idf_score[key]
except:
query_weights[key[0]] = tf_idf_score[key]
query_weights = sorted(query_weights.items(), key=lambda x: x[1], reverse=True)
print("")
l = []
for i in query_weights[:10]:
l.append(i[0])
print(l)
首先,这是将数据重新创建为字典:
d1 = {(101940039, 'yoel'): 0.0016034940264139383,
(101940039, 'yossi'): 0.004810482079241815,
(101940039, 'youngmen'): 0.0016034940264139383}
使用keys()
可以访问密钥。同时,我们希望将它们转换为一个列表。
list(d1.keys())
结果是一个元组列表。
[(101940039, 'yoel'), (101940039, 'yossi'), (101940039, 'youngmen')]
要访问此嵌套列表中的各个项目:首先,使用列表的索引来选择所需的列表,其次,使用元组的索引来在其中选择所需项目。
list(d1.keys())[0][1]
'yoel'
要获取密钥元组的所有字符串元素:
for i in range(len(d1)):
print(list(d1.keys())[i][1])
yoel
yossi
youngmen