我正在尝试使用while循环从python中的列表中读取,但我似乎无法得到它。我一直在使列表索引超出范围错误。
这是清单:
names = [['Bilbo', 'Baggins'], ['Gollum'], ['Tom', 'Bombadil'], ['Aragorn']]
而不是使用for循环:
for person in people:
to_print = ""
for name in person:
to_print += name + " "
print(to_print)
答案 0 :(得分:1)
要使用Python列表,您不需要索引。
for bunch_of_names in names:
if len(bunch_of_names) > 1: # e.g. bunch_of_names = ['Bilbo', 'Baggins']
print 'First name:', bunch_of_names[0], 'Last name: ', bunch_of_names[1]
else: # e.g. ['Aragorn']
print 'Name: ', bunch_of_names[0] # the only one
答案 1 :(得分:1)
while
循环代码的等效for
循环版本为:
>>> i = 0
>>> while i < len(names):
j = 0
to_print = ""
while j < len(names[i]):
to_print += names[i][j] + " "
j += 1
print(to_print)
i += 1
Bilbo Baggins
Gollum
Tom Bombadil
Aragorn
for
循环代码的更好版本是:
>>> for person in names:
print(' '.join(person))
Bilbo Baggins
Gollum
Tom Bombadil
Aragorn
答案 2 :(得分:0)
这样的事情怎么样?
for name in names:
for subname in name:
print(subname)