我正在尝试从列表列表中筛选出唯一的项,并尝试了以下操作:
数据:sent_list = [['cleverness', 'wit'],['the', 'best', 'story'],['best', 'story'],['wit']]
我试过:
word_set = set()
for sent in sent_list:
for word in sent:
word_set.update(word)
word_set
产出为:
{'b', 'c', 'e', 'h', 'i', 'l', 'n', 'o', 'r', 's', 't', 'v', 'w', 'y'}
但预期的代码和结果是:
word_set = set()
for sent in sent_list:
word_set.update(sent)
word_set
{'best', 'cleverness', 'story', 'the', 'wit'}
我使用第一个“for”循环访问主列表中的每个子列表,然后使用第二个“for”循环访问子列表中的每个单词,但似乎我的理解是错误的。另外,在正确的代码中,如果列表直接更新为set,set应该包含列表,不是吗? 请帮助我理解这个概念
您应该使用“add”方法只向列表中添加一个元素“更新”方法添加多个元素。这就是它将字符串视为字符数组的原因。正确的代码是
这里使用的正确方法是set.add(word)not set.update(word)
相关问题 更多 >
编程相关推荐