从lis读取

2024-04-16 17:12:41 发布

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

我试图使用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)

Tags: tonamein内容列表fornames错误
3条回答

要使用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

像这样的怎么样?你知道吗

for name in names:
   for subname in name:
       print(subname)

您的for循环代码的等效while循环版本是:

>>> 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

相关问题 更多 >