如何在python中解决这个问题:如果在列表A中找到列表B中的字符串,则在B中读取下一个字符串,否则将字符串写入列表C(在A中从B中找到项目的新列表),直到文件末尾为止。列表B.换句话说,我想用列表B中的字符串搜索列表A,如果不匹配,我想将该字符串写入名为C的新列表。
lista = {a,b,c,d,g}
listb = {a,d}
导致:
listc = {b,c,g}
谢谢!
答案 0 :(得分:1)
在Python中使用类似花括号时,它会创建一个集合,而不是列表。因此,lista
,listb
和listc
是否为集合或列表*尚不清楚。
如果它们是集合,那么您可以使用-
operator来区分它们:
>>> lista = {'a','b','c','d','g'}
>>> listb = {'a','d'}
>>> listc = lista - listb
>>> listc
{'b', 'c', 'g'}
>>>
如果它们是列表,那么您需要先将它们转换为集合:
>>> lista = ['a','b','c','d','g']
>>> listb = ['a','d']
>>> listc = list(set(lista) - set(listb))
>>> listc
['b', 'c', 'g']
>>>
或者,您可以使用list comprehension:
>>> lista = ['a','b','c','d','g']
>>> listb = ['a','d']
>>> listc = [x for x in lista if x not in listb]
>>> listc
['b', 'c', 'g']
>>>
*注意:如果它们是集合,那么您应该重命名它们以避免混淆。