在尝试使用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)
答案 0 :(得分:0)
num是str,而list1是int的列表。
代替
list1.append(num)
您应该使用
list1.append(int(num))