gpt4 book ai didi

python - 列表理解,但在根据条件选择迭代的列表上

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:16 25 4
gpt4 key购买 nike

我有两个列表 list1list2 作为:

list1 = [4, 3, 20, 10]
list2 = ['a', 'f', 'd', 'b']

我想根据以下条件创建一个新列表 result,如果我的条件 num==10True,则 result 应该包含 list1 的内容,否则它应该包含 list2 的内容。下面是我试过的代码:

num = 10
result = [element for element in list1 if num == 10 else list2]

但这会引发 SyntaxError。我该如何实现?

上述代码的预期输出是:

[4, 3, 20, 10]  # stored in `result`

最佳答案

您只是缺少一些括号:

result = [element for element in (list1 if num == 10 else list2)]

列表理解可以有一个过滤条件(comp_if in the language reference)如下:

[a for a in b if c]

在您当前的版本中,list1b 并且 num == 10c,但是您的额外else list2 在语法上无效。

你需要明确你的条件表达式是b的一部分,你可以用括号来做到这一点。

关于python - 列表理解,但在根据条件选择迭代的列表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48961268/

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