listA = [{'ID'=14, ...},
{'ID'=15, ...},
...,
]
写一个简单好看的表达式,如果listA里面有'ID'==14的字典,就返回True?
{'ID'=15, ...},
...,
]
写一个简单好看的表达式,如果listA里面有'ID'==14的字典,就返回True?
|
1
y=lambda listA:bool([x for x in listA if x['ID']==14])
|
|
reusSep 24, 2012
2
any(map(lambda d: d.get('ID', None) == 14, l))
|
|
3
any(item['id'] == 14 for item in listA)
|
|
4
这个比刚才的更快,因为是generator,遇到为True的就直接返回了,不用遍历整个list
any(d for d in l if d.get('ID', None) == 14) 比如l = [{'ID': 14}] * 5000000,用这个会秒回,map的话慢很多= = |
|
013231Sep 24, 2012
7
|
|
VeelianSep 24, 2012
9
你确定list里是字典?
|