创建一个空列表以便后续赋值
假设我想创建一个名字的列表。
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方法,你就可以往列表里添加新的项目了。
虽然有一些高级技巧可以更简单地做到这一点,但考虑到你的水平,我觉得你先理解这段代码再继续学习会更好。