Skip to main content
 首页 » 编程设计

python之从字典键中获取元组的第二个元素

2025年05月04日19zhenyulu

我有以下命令:

{('I', 'like'):14, ('he','likes'):2, ('I', 'hate'):12}

对于给定的 word 字符串,我想获取字典中 all tuples 的第二个元素(这是字典的键)具有这个 word 作为第一个元素。 我试过:

word='I'     
second_word = (k[0][1] for k, v  in d if word == k[0][0]) 
print(second_word) 

并期望得到“喜欢”作为答案但得到了:

<generator object generate_ngram_sentences.<locals>.<genexpr> at 0x7fed65bd0678> 
<generator object generate_ngram_sentences.<locals>.<genexpr> at 0x7fed65bd0678> 
<generator object generate_ngram_sentences.<locals>.<genexpr> at 0x7fed65bd06d0> 
  1. 如何在字典中不仅获得第一次出现而且获得所有这样的出现?

编辑: 2. 您能否分享在元组大小为动态的情况下如何修改它。这样字典的键就会存储例如。 2elem 元组或 15elem 等元组取决于字典?

请您参考如下方法:

您的想法是正确的,但需要进行微调:

d = {('I', 'like'):14, ('he','likes'):2, ('I', 'hate'):12} 
 
word='I'     
second_word = [k[1] for k in d if k[0] == 'I'] 
print(second_word) 

输出是第一项为'I'的所有lkeys的所有第二个词的列表

['like', 'hate'] 

从那里:

second_word[0] --> 'like'