如何在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)