【发布时间】:2019-11-17 16:02:27
【问题描述】:
我正在尝试检查每个嵌套的较大数字,并仅用具有最大值的数字的值覆盖每个嵌套列表。 我已经使用嵌套循环做到了这一点,但我想知道如何使用条件列表理解来做到这一点。 这是我的嵌套循环解决方案:
list1 = [[1,2,4,3], [1,2,755,244], [1,2,6,1000] , [5,3,7,13]]
iterator = 0
for val1 in list1:
for num in val1:
if num == max(val1):
list1[iterator] = num
iterator +=1
这是我尝试使用列表理解但语法错误的方法:
num for x in list1 for num in x if num ==max(x)
错误是:语法无效
【问题讨论】:
-
语法错误是什么意思?给出错误。一方面,您似乎缺少括号。
-
列表理解部分给了我一个语法错误。我只得到无效的语法,它指向第一个 for 循环,我在帖子中添加了一个屏幕截图
-
我们不要截图,发minimal reproducible example作为文本。
-
生成器表达式如 listcomp 需要放在括号中。如果您正在执行 listcomp,则表达式需要在
[]内。 -
@jornsharpe2 在这种情况下,它是指向第一个 for 的无效语法错误。
标签: python-3.x list conditional-statements list-comprehension