我需要从列表中的一组列表中删除所有值,这些列表是字符串或低于28.任何帮助?
a[1:3]
a = [[u'ufs_munic', u'ext_paises', u'5', u'6', u'7', u'8', u'5551', u'5552', u'5553', u'5554', u'5555', u'5556', u'5557'], [u'ufs_munic', u'ext_paises', u'5', u'6', u'7', u'8', u'9', u'10', u'11', u'12', u'5301', u'5302', u'289', u'5303', u'5304', u'5305', u'290', u'5306', u'5307', u'5308', u'5309', u'291', u'5310', u'5311', u'5312', u'5313', u'5314', u'5315', u'5316', u'5317', u'292', u'5318', u'5319', u'5320']]
我需要得到一个结果:
[[u'5551', u'5552', u'5553', u'5554', u'5555', u'5556', u'5557'], [u'5301', u'5302', u'289', u'5303', u'5304', u'5305', u'290', u'5306', u'5307', u'5308', u'5309', u'291', u'5310', u'5311', u'5312', u'5313', u'5314', u'5315', u'5316', u'5317', u'292', u'5318', u'5319', u'5320']]
答案 0 :(得分:4)
使用filter
。
def passed(item):
try:
return int(item) > 28
except ValueError:
return False
result = [filter(passed, item) for item in a]
答案 1 :(得分:0)
过滤器主题的变化。如果您的数字太大而无法转换为低于28的数字,那么这将无效。)
map(lambda lst : filter(lambda v : v.isdigit() and float(v) > 28, lst),a)