列表索引必须是整数,而不是str 6

2024-04-26 13:55:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python非常陌生,我真的很难找到解决这个问题的方法。你知道吗

我只是不明白为什么我只需要在我的列表中包含整数,而我认为它们应该支持多种数据类型。你知道吗

我有一个非常简单的帐户注册字段输入系统,但我不能将项目添加到列表中。你知道吗

任何帮助都将不胜感激。我已经包括了我的代码和我收到的信息。你知道吗

useraccounts = {}
group = []



forename = input('Forename: ')
surname = input('Surname: ')
DOB = input('DOB: ')
stu_class = input('Class: ')

group['forename'] = forename
group['surname'] = surname
group['dob'] = DOB
group['class'] = stu_class

group.append(user accounts)

这是错误消息:

Traceback (most recent call last):
  File "/Users/admin/Documents/Homework/Computing/testing/testing.py", line 11, in <module>
    group['forename'] = forename
TypeError: list indices must be integers, not str

Tags: 方法列表input系统group帐户整数surname
3条回答

您需要的是dictionary

group = {}

group['forename'] = forename
group['surname'] = surname
group['dob'] = DOB
group['class'] = stu_class

在原始代码中useraccounts保留一个空的dict,您只需将它附加到列表中。如果要将group添加到useraccounts

useraccounts['key'] = group

看起来你想要group成为dict,而useraccounts成为list。您可以将它们向后,以及附加:

useraccounts = []   # <  list
group = {}          # <  dict

forename = input('Forename: ')
surname = input('Surname: ')
DOB = input('DOB: ')
stu_class = input('Class: ')

group['forename'] = forename
group['surname'] = surname
group['dob'] = DOB
group['class'] = stu_class

useraccounts.append(group)   # <  reversed. this will append group to useraccounts

如前所述,您试图将useraccuonts,一个空列表附加到group,一个dict,它没有append方法

group是一个列表,它不能采用字符串索引。看起来你想改用字典:

useraccounts = []
group = {}

group['forename'] = forename
group['surname'] = surname
group['dob'] = DOB
group['class'] = stu_class

useraccounts.append(group)

请注意,您可能希望useraccounts成为这里的列表;您的代码试图调用group对象上的.append()。。你知道吗

或者直接将键和值内联到字典定义中:

useraccounts.append({
    'forename': forename,
    'surname': surname,
    'dob']: DOB,
    'class': stu_class})

相关问题 更多 >