例如
result=["a","b","d","a"]
a=["a","d"]
输出["a","b"]
怎么实现
result = ["a", "b", "d", "a"]
a = ["a", "d"]
output = result[:]
for element in a:
if element in output:
output.remove(element)
print(output)
可以考虑使用remove 值得注意的是 output 的字母顺序 是 源列表 从前往后 删除的 如果需要还需要再调整代码
sum([[i for _ in range(res.count(i) - a.count(i))] for i in set(res)], [])
# 这个试过了,因该是你要的效果吧
from collections import Counter
result = ["a", "b", "d", "a"]
a = ["a", "d"]
a_count = Counter(a)
result_count = Counter(result)
diff_count = result_count - a_count
diff = [k for k, v in diff_count.items() for i in range(v)]
print(diff)
【以下回答由 GPT 生成】
问题解答: 这个问题可以通过遍历result列表,逐个比较每个元素是否在a列表中来实现。如果在a列表中,则将该元素从result列表中删除。最后返回result列表即可。
result = ["a", "b", "d", "a"]
a = ["a", "d"]
for element in a:
if element in result:
result.remove(element)
print(result)
输出结果为 ["a", "b"]。
这样做的原理是,在循环中使用remove
方法删除result列表中的元素。由于remove
方法只能删除列表中第一个匹配到的元素,因此可以确保不去重。
【相关推荐】
result = ["a", "b", "d", "a"]
a = ["a", "d"]
output = [x for x in result if x not in a]
print(output)
from collections import Counter
##这个适合重复元素元素个数为2个的
result=["a","b","d","a"]
a=["a","d"]
print( list( Counter(result) - Counter(a) ) )
#####建议用这种
result=["a","b","d","a",'a']
a=["a","d"]
data = []
for k,v in dict( Counter(result) - Counter(a) ).items():
for i in range(v):
data.append(k)
print(data)