📅  最后修改于: 2023-12-03 14:57:27.275000             🧑  作者: Mango
如果你有两个不同的物品列表,但价格有所不同,你可能想找出这两个列表共有但价格不同的项目。这个问题可以用Python语言很容易地解决。
我们可以先将两个列表合并成一个列表,然后使用Python内置模块collections中的Counter类来计算其中每个元素出现的次数。最后,我们只需找出那些出现次数大于1但价格不同的元素即可。
下面是一个Python函数可以实现这个功能:
from collections import Counter
def find_different_prices_items(list1, list2):
# 将两个列表合并成一个列表
items = list1 + list2
# 使用Counter来计算每个元素出现的次数
count_items = Counter(items)
# 找出那些出现次数大于1但价格不同的元素
result = []
for item, count in count_items.items():
if count > 1 and item[0] in list1 and item[0] in list2 and list1[list1.index(item[0])][1] != list2[list2.index(item[0])][1]:
result.append(item)
return result
在这个函数内部,我们首先创建了一个新列表items
,其中包含了两个输入列表list1
和list2
的所有项。然后,我们使用Counter类来处理这个新列表。随后,我们通过迭代Counter类的项,找到那些出现次数大于1但价格不同的元素,并将它们添加到结果列表result
中。
这个函数返回的结果是一个包含所有匹配的元素的列表。
使用这个函数,我们可以很容易地找到那些在两个不同商品列表中价格不同的项:
list1 = [('apple', 1.25), ('banana', 0.99), ('orange', 1.50)]
list2 = [('apple', 1.50), ('grape', 2.35), ('orange', 1.50)]
result = find_different_prices_items(list1, list2)
print(result)
这个Python脚本将输出:
[('apple', 1.25), ('apple', 1.50), ('orange', 1.50)]
结果包含了那些在两个列表中价格不同的项。