皮蛋子h 发表于 2025-2-22 21:11:19

想知道错误之处

list1=[(x*2 for x in range(5),y*2+1 for y in range(5))]

FishC 发表于 2025-2-22 21:11:25

你的代码有错误,等号后面应该有一个列表。下面是修正后的代码:


list1 = []


如果还有其他问题,欢迎继续提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼的二师兄 发表于 2025-2-23 02:13:24

列表推导式 [...] 不能直接包含多个生成器

方法 1:用生成器元组

list1 = [(x * 2, y * 2 + 1) for x in range(5) for y in range(5)]
print(list1)

方法 2:用元组存储两个生成器

list1 = ( (x*2 for x in range(5)), (y*2+1 for y in range(5)) )
print(list1)# 这时候 list1 里存的是两个生成器对象

sfqxx 发表于 2025-2-23 09:03:33

错误原因:
Python 不允许在元组或列表中直接使用生成器表达式(for 循环)作为独立的元素。
the correct should be:
list1 =
print(list1)

有用请设置最佳答案

皮蛋子h 发表于 2025-2-23 19:47:06

小甲鱼的二师兄 发表于 2025-2-23 02:13
列表推导式 [...] 不能直接包含多个生成器

方法 1:用生成器元组


方法二好像不行

皮蛋子h 发表于 2025-2-23 19:55:44

sfqxx 发表于 2025-2-23 09:03
错误原因:
Python 不允许在元组或列表中直接使用生成器表达式(for 循环)作为独立的元素。
the correct ...

好像不行
页: [1]
查看完整版本: 想知道错误之处