我有以下命令:
{('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>
- 如何在字典中不仅获得第一次出现而且获得所有这样的出现?
编辑: 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'
