无法访问索引元组

Can't access indexed tuple

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

(101940039, 'yoel'): 0.0016034940264139383, 
(101940039, 'yossi'): 0.004810482079241815, 
(101940039, 'youngmen'): 0.0016034940264139383}

我需要访问键的值,即元组的字符串。我尝试了很多东西,比如转换为字典,使用 key[0] 只是给我“'int' object is not subscribable”..

    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')]

要访问此嵌套列表中的单个项目:首先,使用列表的索引 select 所需的列表,其次,使用元组的索引 select 所需的项目在.

list(d1.keys())[0][1]

'yoel'

获取键元组的所有字符串元素:

for i in range(len(d1)):
    print(list(d1.keys())[i][1])

yoel

yossi

youngmen