Par*_*dox 3 python list-comprehension
我有一个元组列表:
tuples = [(0,1), (2,0), (3,4), (1,2) etc. ]
Run Code Online (Sandbox Code Playgroud)
我想创建另一个列表,其中包含与0配对的所有数字.我尝试使用列表解析来执行此操作:
relations = [x[1] if x[0] == 0 else x[0] if x[1] == 0 for x in tuples]
Run Code Online (Sandbox Code Playgroud)
但是,这会产生错误.Python似乎不喜欢'x'是一个元组.可以用列表理解来定义"关系",还是需要写出更长的代码?
你还需要一个else; 每个条件表达式需要二者的if和else,会省略else从第二条件表达式.
但是你的问题可以更简单地表达为:
relations = [x[0] or x[1] for x in tuples if 0 in x]
Run Code Online (Sandbox Code Playgroud)
这首先过滤任何具有零的元组,然后选择不为0的值.
演示:
>>> tuples = [(0,1), (2,0), (3,4), (1,2)]
>>> [x[0] or x[1] for x in tuples if 0 in x]
[1, 2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
384 次 |
| 最近记录: |