如何在python的嵌套列表中追加变量
这是我插入值时发生的错误如何在python的嵌套列表中追加变量,python,python-3.x,typeerror,nested-lists,Python,Python 3.x,Typeerror,Nested Lists,这是我插入值时发生的错误 if __name__ == '__main__': for _ in range(int(input())): name = input() score = float(input()) a=[] a.append([name][score]) print(a) 回溯(最近一次呼叫最后一次): 文件“C:/Users/Administrator/Desktop/Nested list.p
if __name__ == '__main__':
for _ in range(int(input())):
name = input()
score = float(input())
a=[]
a.append([name][score])
print(a)
回溯(最近一次呼叫最后一次):
文件“C:/Users/Administrator/Desktop/Nested list.py”,第6行,在
a、 追加([姓名][分数])
TypeError:列表索引必须是整数或片,而不是浮点
使用字典而不是列表(列表可以工作,但对于您正在做的事情,hashmap更适合):
创建包含
name
和score
的列表的语法是[name,score]
[name][score]
意味着创建一个只包含[name]
的列表,然后使用score
作为该列表的索引;这不起作用,因为score
是一个float
,列表索引必须是int
您还只需要初始化外部列表一次。将a=[]
放入循环中会覆盖您在以前的迭代中附加的项
if __name__ == '__main__':
scores = dict()
for _ in range(int(input())):
name = input()
score = float(input())
scores[name] = score
print(scores)
正如其他人所说,字典可能是解决这个问题的最好办法 但是,如果要将具有多个值的元素添加到列表中,则必须创建子列表
a.append([name,score])
或元组a.append((name,score))
请记住,元组是不能修改的,因此,例如,如果要更新用户的分数,必须从列表中删除相应的元组并添加一个新元组
如果您只是想向平面列表中添加新值,只需选择
a=a+[name,score]
。这将把name
和score
作为完全独立的元素添加到列表末尾。您预期的a
结果是什么?如果您试图在嵌套列表中追加分数,则需要第二个for循环。如果不是,那么考虑使用一个字典,这样你就有了名字和分数,你想用什么来实现?也许你的意思是[姓名,分数]
?你不应该在循环中重新初始化一个。在循环之前初始化它,并在循环内部追加它。我想在嵌套列表中获得如下值,[['Prakash',70.60],'Shelar',60.20]]基于文件名,我想他正在做一个练习来了解嵌套列表。字典可能是解决实际问题的正确方法,但不是解决这个问题。
if __name__ == '__main__':
scores = dict()
for _ in range(int(input())):
name = input()
score = float(input())
scores[name] = score
print(scores)
a=[]
for _ in range(int(input())):
name = input()
score = float(input())
a.append([name, score])
print(a)