我有两个列表,一个包含电池单元名称及其电压,另一个列表包含电池单元姓名及其大小。如何检查两个列表中的单元格名称在两个列表的显示顺序是否相同?
list1 = [('BATN_CELL_09', 3.184), ('BATN_CELL_04', 3.186), ('BATN_CELL_05', 3.247)]
list2 = [('BATN_CELL_09', 0), ('BATN_CELL_04', 20), ('BATN_CELL_05', 200)]
如果我只是将一个列表与另一个列表进行比较,由于值不同,它会返回false。我可以删除数值并创建两个新的列表,只包含字符串并进行比较吗?电池单元名称的顺序会保持当前顺序吗?
all(tupl[0] == list2[index][0] for index, tupl in enumerate(list1))
这应该完成任务:
list1 = [('BATN_CELL_09', 3.184), ('BATN_CELL_04', 3.186), ('BATN_CELL_05', 3.247)]
list2 = [('BATN_CELL_09', 0), ('BATN_CELL_04', 20), ('BATN_CELL_05', 200)]
for i in range (len(list1)):
if list1[i][0] == list2[i][0]:
next
else:
print("Error at", list1[i][0], "and", list2[i][0])
这是我第一次回答问题,我写了一个函数来检查每个列表中的名称是否按相同顺序排列:
list1 = [('BATN_CELL_09', 3.184), ('BATN_CELL_04', 3.186), ('BATN_CELL_05', 3.247)]
list2 = [('BATN_CELL_09', 0), ('BATN_CELL_04', 20), ('BATN_CELL_05', 200)]
def check(list1, list2):
list1_names = [elm[0] for elm in list1]
list2_names = [elm[0] for elm in list2]
if list1_names == list2_names:
return True
else:
return False
我取list1和list2中每个元组的第一个元素来获得电池名称列表,希望这有帮助!