类型错误子设置字符串列表 - Python 3

我正在尝试从另一个列表中子集一个列表,但我得到一个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')


慕侠2389804
浏览 123回答 2
2回答

互换的青春

要从a中获取项目b:c = [i for i in a if i in b] print(c)输出:['two', 'two', 'three', 'three', 'three', 'eight', 'nine']

撒科打诨

我喜欢这样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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python