gpt4 book ai didi

没有in的python列表理解

转载 作者:行者123 更新时间:2023-11-28 22:15:49 24 4
gpt4 key购买 nike

如果 flattend 只是一个字符串列表,例如

['There','is','only','passion','and','piece','is','a','lie','lie','lie']

然后在下面两行

c = Counter(flattened)
vocab = [x for x, count in c.items() if count>=2]

[x for x,...] 部分是什么意思?另外,count 不应该是元组类型吗,因为我认为它是一个计数器项?这部分 count>=2 是怎么工作的?!

注意:我从调试中了解到,第一行将列表转换为计数器,第二行删除了出现次数少于两次的项目。但我不能真正解释语法

最佳答案

所以这里的语法有点困惑,但实际发生的是 c.items() 中的每个项目都是一个包含单词及其计数的元组。

更清晰的写法是:

vocab = [x for (x, count) in c.items() if x>=2]

但也可以这样做:

vocab = [x[0] for x in c.items() if x[1]>=2]

其中 x 是一个元组。

查看 c 的实际情况也很有帮助。如果你打印 c,你会看到:

>>> print c
Counter({'lie': 3, 'is': 2, 'and': 1, 'a': 1, 'There': 1, 'only': 1, 'passion': 1, 'piece': 1})

c.items()

>>> print c.items()
[('and', 1), ('a', 1), ('lie', 3), ('is', 2), ('There', 1), ('only', 1), ('passion', 1), ('piece', 1)]

关于没有in的python列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52614350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com