我有两个要使用的元组列表,以最终帮助我实现流程自动化。我正在寻找如何正确识别那些元组列表中是否存在匹配项。
我已经尝试过使元组列表变平,以使它们更易于使用,并且我在想确定元素是否与布尔语句匹配,但是我不确定如何使程序运行这两个元组列表。
list1 = [[('1306264304', 'Coca-Cola Zero Sugar Cola, Cans', '1'), ('1176982083', "Ito En Teas\\' Tea, Jasmine Green, Plastic Bottles", '1'), ('-975890652', "Ito En Teas\\' Tea, Lemongrass Green, Plastic Bottles", '1'), ('-1152939818', "Ito En Teas\\' Tea, Pure Green, Plastic Bottles", '1'), ('19102859', 'LaCroix Sparkling Water, Coconut, Cans', '1'), ('-546157568', 'LaCroix Sparkling Water, Grapefruit, Cans', '1')]]
and
list2 = [[((beverages)'Coca-Cola Zero Sugar Cola, Cans', 4), ("Ito En Teas\\' Tea, Jasmine Green, Plastic Bottles", 3), ("Ito En Teas\\' Tea, Pure Green, Plastic Bottles", 5)]]
如果list1中的元组元素与list2中的元组元素匹配,我需要它返回true。例如:如果两个列表中均显示“可口可乐零糖可乐,罐头”,则需要获取它以标识该匹配项。实际上,我对如何编写此代码有些迷惑。我知道我需要一个循环,仅此而已。非常感谢您的帮助。
答案 0 :(得分:2)
这应该可以解决问题。该函数在内部很好地注释过,但是从本质上讲,我们循环遍历一个数组,并对照第二个数组中的项目检查每个项目。如果存在匹配项,则返回true。如果不是,则返回false。
# Create function
def find_match(arr1, arr2):
# Loop through first array
for item in arr1:
# Given the current item, check it against items in other array
for arr2_item in arr2:
# Print what you are comparing
print("array 1 item: ", item, "array 2 item: ", arr2_item)
# If there is a match
if item == arr2_item:
# Return true
return True
# If not
else:
# Keep going
continue
# If you havent returned by this point, it means there is no match
return False
# Main function
def main():
# Example dummy list one
list1 = ['a', 'b', 'c', 'd']
# Example dummy list two
list2 = ['d', 'e', 'f', 'g']
# Call the function
did_it_match = find_match(list1, list2)
# Print the result
print(did_it_match)
# Call main
main()
注意-您发布的数组的格式似乎不正确,因此我无法使用它们。
**
** 下面的代码是从其他已发布的代码示例中编辑而来的,但这是使用OP已发布的数组的有效解决方案。
def solution(list1, list2):
for index, item in enumerate(list1[0]):
for index, item2 in enumerate(list2[0]):
for item3 in item:
for item4 in item2:
if item3==item4:
return True
return False
def main():
list1 = [[('1306264304', 'Coca-Cola Zero Sugar Cola, Cans', '1'), ('1176982083', "Ito En Teas\\' Tea, Jasmine Green, Plastic Bottles", '1'), ('-975890652', "Ito En Teas\\' Tea, Lemongrass Green, Plastic Bottles", '1'), ('-1152939818', "Ito En Teas\\' Tea, Pure Green, Plastic Bottles", '1'), ('19102859', 'LaCroix Sparkling Water, Coconut, Cans', '1'), ('-546157568', 'LaCroix Sparkling Water, Grapefruit, Cans', '1')]]
list2 = [[('Coca-Cola Zero Sugar Cola, Cans', 4), ("Ito En Teas\\' Tea, Jasmine Green, Plastic Bottles", 3), ("Ito En Teas\\' Tea, Pure Green, Plastic Bottles", 5)]]
does_match = solution(list1, list2)
print(does_match)
main()
这将返回 True
答案 1 :(得分:1)
这就是您要寻找的东西:
由于我们可以假设您的列表中有一个包含元组的列表,因此应该可以做到这一点:
def function():
for index, item in enumerate(list1[0]):
for index, item2 in enumerate(list2[0]):
for item3 in item:
for item4 in item2:
if item3==item4:
return True