我在尝试使用zip函数一起将两个列表同步时遇到问题。我正在使用TXT文件创建一个高分系统。它读取文件并将文件分为两个列表,即名称和分数:
5
andy
34
jamie
8
fred
45
kyle
6
joe
然后对一个列表进行排序,另一个列表同步。这很好。然后,它要求输入一个新的分数,如果它比列表中的最小值大,则删除了最小的分数,并将新值添加到列表中。然后,我尝试再次对其进行排序,但它失败并给我此错误消息:
list1, list2 = (list(t) for t in zip(*sorted(zip(list1, list2))))
TypeError: '<' not supported between instances of 'str' and 'int'
我尝试将列表变量切换到字符串,但它只是输出了一大堆垃圾:
[' ', ' ', ' ', ' ', "'", "'", ',', ',', ',', ',', '3', '4', '4', '5', '6', '7', '8', '[', ']']
[',', ',', 'o', 'r', ' ', 'j', "'", "'", 'f', 'j', ' ', "'", 'e', 'd', "'", "'", 'e', '[', 'a']
下面,我将代码和一个链接放在了我从中获得"同步列表"代码的位置。
谢谢
lines = [line.rstrip('n') for line in open('highScores_Test.txt')]
print(lines)
#list1 = scores list2 = names
list2 = [(lines[1]),(lines[3]),(lines[5]),(lines[7]),(lines[9])]
list1 = [int(lines[0]),int(lines[2]),int(lines[4]),int(lines[6]),int(lines[8])]
print(list1[0])
list1, list2 = (list(t) for t in zip(*sorted(zip(list1, list2))))
print(list1)
print(list2)
num = input()
name = input()
if int(num) > int(list1[0]):
del list1[0]
del list2[0]
list1.append(num)
list2.append(name)
list1, list2 = (list(t) for t in zip(*sorted(zip(list1, list2))))
print(list1)
print(list2)
同步列表线程
num是str,list1是int。
的列表而不是
list1.append(num)
您应该使用
list1.append(int(num))