总是记混了。有时候就多尝试几个写法,结果总是不对。这样记录一下吧。
1
data=[1,2,3,4,5,4]
如果想要写直有if的条件列表,假设只选出所有的4,你的条件要放在后面。
target=[num for num in data if num==4]
但是如果想写if else,你的if else要放在前面,假设所有等于4的保持不变,不等于4的都返回0
target=[num if num==4 else 0 for num in data]
2
对列表的筛选
假设一个列表LIST=['aba','a','b','aaabb']
,想要筛选出来带有’ab’的字符元素
- 自己写:
[item if 'ab' in item for item in LIST]
- filter:
list(filter(lambda x:'ab' in x, LIST))
3
map作用,符合函数条件的给True,不符合的False,比如:
a=[1,0,3,0]
list(map(lambda x:x>0,a))
[True, False, True, False]
和C系的map超级不一样。C系的map在py中是dict……