Ilt*_*ltl 2 python list-comprehension
假设我有一个由整数元素组成的列表L. 我想构建一个列表T,对于每个索引,我在0..len(L)中包含项目L [i],前提是它使用python中的List comprehension大于0.
我尝试了以下命令来执行此操作
T=[L[i] if L[i]>0 for i in range(len(L))]
Run Code Online (Sandbox Code Playgroud)
但我不断收到语法无效的错误.如何在python中使用List comprehension正确地做到这一点?
你的语法错了:
L = [1,2,-4,5,-6,7,8,9]
T = [L[i] for i in range(len(L)) if L[i]>0]
Run Code Online (Sandbox Code Playgroud)
输出:
[1, 2, 5, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
你也可以只遍历列表中的元素,不需要使用range.像这样 :T = [i for i in L if i>0]
记住:
什么时候只有if语法[expression for var in list if ...]
当两个if及else是否有语法[expression1 if ... else expression2 for var in list]