我正在尝试遍历字符串列表,跳过前两个字符串,然后将1
替换为列表中其余字符串中的''
。
stringList = {['abc', 'def', 'ghi1', 'jkl1']}
xx = [col.replace('1', '') for col in stringList if col not in stringList[1:2]]
print(xx)
我的代码抛出此错误:
TypeError:不可用类型:'list'
我希望xx
等于以下列表:'ghi'
,'jkl'
我该怎么做?
答案 0 :(得分:2)
在Python中,集合必须包含可清除的元素(请参阅Python glossary)。列表不可清除,但是元组是。如果它仍然符合您的目的,您可以使用元组而不是列表:
stringList = {('abc', 'def', 'ghi1', 'jkl1')}
您应该尝试更仔细地阅读错误消息。错误跟踪会告诉您哪条线导致错误。此外,邮件本身也在抱怨列表,在您的示例中只有2个。
答案 1 :(得分:1)
以下代码打印['ghi', 'jkl']
这就是你想要的吗?
stringList = ['abc', 'def', 'ghi1', 'jkl1']
xx = [col.replace('1', '') for col in stringList if col not in stringList[0:2]]
print(xx)
正如Martijn Pieters在评论中所说,你将一个列表['abc', 'def', 'ghi1', 'jkl1']
放在一个集合中。
set对象是不同的hashable对象的无序集合。 常见用途包括成员资格测试,从中删除重复项 序列,并计算数学运算,如交集, 联合,差异和对称差异。