gpt4 book ai didi

python - if else 在带有 for 循环的列表理解中

转载 作者:行者123 更新时间:2023-12-05 00:55:18 24 4
gpt4 key购买 nike

我已经为扁平化列表编写了自己的简单解决方案:

lists = [0, 10, [20, 30], 40, 50, [60, 70, 80], [90, 100, 110, 120]]
new = []
for item in lists:
if str(item).isdigit() != True:
for v in item:
new.append(v)
else:
new.append(item)
print(new)

但我想在以下代码中添加 else/elif 以缩短代码:

new = [v for item in lists if str(item).isdigit() != True for v in item]

我不知道如何解决语法错误。

最佳答案

试试这个:

>>> [v for item in lists for v in (item if isinstance(item, list) else [item])]
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]

这有点低效,因为它将一个整数包装到一个列表中,然后对其进行迭代,但对于大多数用途来说这无关紧要。尽量不要使用字符串表示来检查数据类型,因为您可能会得到意想不到的结果(例如,尝试使用 float 而不是列表中的整数运行原始代码)。

关于python - if else 在带有 for 循环的列表理解中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64799366/

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