Mar*_*am 3 python list-comprehension list
我有两个列表list1,list2如下:
list1 = [4, 3, 20, 10]
list2 = ['a', 'f', 'd', 'b']
Run Code Online (Sandbox Code Playgroud)
我想result根据条件创建一个新列表,如果我的条件num==10是True,那么result应该保留来自list1else 的内容,它应该持有内容list2.以下是我尝试过的代码:
num = 10
result = [element for element in list1 if num == 10 else list2]
Run Code Online (Sandbox Code Playgroud)
但这是在提高SyntaxError.我该怎么做到这一点?
上述代码的预期输出为:
[4, 3, 20, 10] # stored in `result`
Run Code Online (Sandbox Code Playgroud)
你只是遗漏了一些括号:
result = [element for element in (list1 if num == 10 else list2)]
Run Code Online (Sandbox Code Playgroud)
列表推导可以具有过滤条件(comp_if在语言参考中),如下所示:
[a for a in b if c]
Run Code Online (Sandbox Code Playgroud)
在您当前的版本中,list1是b和num == 10是c,但您的附加功能else list2在语法上无效.
您需要明确表示您的条件表达式是其中的一部分b,您可以使用括号.