如何检查两个列表的顺序,只检查这两个列表中的字符串



我有两个列表,一个包含电池单元名称及其电压,另一个列表包含电池单元姓名及其大小。如何检查两个列表中的单元格名称在两个列表的显示顺序是否相同?

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中每个元组的第一个元素来获得电池名称列表,希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新