gpt4 book ai didi

python - 遇到 python 错误

转载 作者:行者123 更新时间:2023-11-28 22:16:52 25 4
gpt4 key购买 nike

当我运行时

a = ["I","love","you"]
a = {(word) for word in a}
print a

我得到了这个结果

set(['I', 'you', 'love'])

这就是我所期望的。

但是当我运行的时候

a = ["I","love","you"]
a = {((word) for word in c)for c in a}
print a

我得到了一些意想不到的结果:

set([<generator object <genexpr> at 0x1004d5280>, <generator object <genexpr> at 0x1004d5320>, <generator object <genexpr> at 0x1004d5370>])

我期望的是

set(['e','I','u','o','v','l','y')

有人能告诉我导致这个问题的原因吗?

最佳答案

这是语法问题。 (word) 等同于 word。但是,当您在用括号括起来的表达式中包含 for 循环时,它被视为生成器表达式 ( PEP 289)。

相反,直接使用嵌套循环:

res = {word for c in a for word in c}

# {'I', 'e', 'l', 'o', 'u', 'v', 'y'}

语法类似于常规的 for 循环:

res = set()
for c in a:
for word in c:
res.add(word)

关于python - 遇到 python 错误 <generator object <genexpr>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51845914/

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