创建一个空列表以便后续赋值

5 投票
4 回答
59962 浏览
提问于 2025-04-16 07:05

假设我想创建一个名字的列表。

listOfNames = []

然后我有一个像这样的循环:

count = 0
while listOfNames[count] < 10:
    nameList[count] = raw_input("Enter a name: ")
    count += 1

Python 提示我列表的索引超出了范围,但列表的索引应该是从 0 开始,对吧?

我该如何在每次循环运行时向列表中添加内容呢?我觉得我的列表赋值可能有问题。

4 个回答

1
count = 0
while listOfNames[count] < 10:
    nameList.append(raw_input("Enter a name: "))
    count += 1

用append方法可以快速简单地添加内容...

另外一种方法是:

nameList[len(nameList):] = [raw_input("Enter a name: ")]

编辑:你是想把listOfNames添加到列表中,而不是nameList吗?

5

最常用的方法是使用列表推导式:

namelist = [raw_input("Enter a name: ") for i in range(10)]

(或者可以用 _ 来代替 i,不过我个人不太推荐这样做)

这样做的好处是可以即时生成列表,而不需要使用 append() 方法或者明确的索引。

11

一个空列表还没有任何索引,因为它就是一个空列表!如果你想往里面添加东西,你需要像这样做:

while count < 10:
    nameList.append(raw_input("Enter a name: "))
    count += 1

这样一来,你的条件就会被判断,而通过使用append方法,你就可以往列表里添加新的项目了。

虽然有一些高级技巧可以更简单地做到这一点,但考虑到你的水平,我觉得你先理解这段代码再继续学习会更好。

撰写回答