我目前有两个列表:
str1 = ['test1.jpg', 'test2.jpg', 'test3.jpg']
str2 = ['test1.jpg', 'test2.jpg']
您可能已经注意到,str2中缺少test3.jpg。有没有办法可以将str2与str1进行比较并找到缺失的部分?
答案 0 :(得分:0)
好。那些实际上是你在那里获得的2个字符串列表。
比较一个简单的方法是:
missing = [x for x in str1 if x not in str2]
missing
输出:
['test3.jpg']
希望有所帮助!
答案 1 :(得分:0)
您可以使用内置类型set
str1 = ['test1.jpg', 'test2.jpg', 'test3.jpg']
str2 = ['test1.jpg', 'test2.jpg']
s1 = set(str1)
s2 = set(str2)
print(s1-s2)
从那里你可以轻松创建功能:
def difference(list1,list2):
return set(list1)-set(list2)
如果您想在两者之间创建差异,您可以执行以下操作: 对于数据:
str1 = ['test1.jpg', 'test2.jpg', 'test3.jpg']
str2 = ['test1.jpg', 'test2.jpg', 'test4.jpg']
Funcion将是:
def difference(list1,list2):
return (set(list1)-set(list2)) | (set(list2)-set(list1))
或者:
def difference(list1,list2):
return set(list1).symmetric_difference(set(list2))
输出:
{' test3.jpg',' test4.jpg'}
答案 2 :(得分:0)
使用 设置 差异运算符的解决方案:
str1 = ['test1.jpg', 'test2.jpg', 'test3.jpg']
str2 = ['test1.jpg', 'test2.jpg']
diff = list(set(str1) - set(str2))
# the same can be achieved with set.difference(*others) method:
# diff = list(set(str1).difference(set(str2)))
print(diff)
输出:
['test3.jpg']
https://docs.python.org/3/library/stdtypes.html?highlight=set#set.difference