我正在尝试从另一个列表中子集一个列表,但我得到一个TypeError.a = ('one', 'two', 'two', 'three', 'four', 'five', 'three', 'three', 'eight', 'nine', 'ten')a = list(a)b = ('two', 'three', 'eight', 'nine')b = list(b)c = [a[i] for i in b] # subsets list a for what's in list b返回:TypeError:列表索引必须是整数或切片,而不是 str我在找什么:print(a)('two', 'two', 'three', 'three', 'three', 'eight', 'nine')
2 回答
互换的青春
TA贡献1797条经验 获得超6个赞
要从a
中获取项目b
:
c = [i for i in a if i in b] print(c)
输出:
['two', 'two', 'three', 'three', 'three', 'eight', 'nine']
撒科打诨
TA贡献1934条经验 获得超2个赞
我喜欢这样filter做:
代码:
filter(lambda x: x in b, a)
测试代码:
a = ('one', 'two', 'two', 'three', 'four', 'five',
'three', 'three', 'eight', 'nine', 'ten')
b = {'two', 'three', 'eight', 'nine'}
print(list(filter(lambda x: x in b, a)))
结果:
['two', 'two', 'three', 'three', 'three', 'eight', 'nine']
添加回答
举报
0/150
提交
取消