无法访问索引元组



我正试图遍历一个字典,该字典本质上包含元组和元组的键,如下所示:

(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

相关内容

最新更新