通过while循环打印嵌套列表

时间:2015-03-26 02:10:29

标签: python while-loop nested-lists

我需要使用while循环打印嵌套列表。任何使用for循环都会给予惩罚。 我的功能输出与所需的输出不匹配。

例如:

print_names2([['John', 'Smith'], ['Mary', 'Keyes'], ['Jane', 'Doe']])

打印出来(必需的输出):

John Smith 
Mary Keyes 
Jane Doe

我的功能:

def print_names2(people):
    name = 0
    while name < len(people):
        to_print = ""
        to_print = people[name]
        print(to_print)
        name += 1

打印出来:

['John', 'Smith']
['Mary', 'Keyes']
['Jane', 'Doe']

如何删除列表和字符串?

3 个答案:

答案 0 :(得分:2)

您可以使用两个嵌套的while循环:

def print_names2(people):
    i = 0    
    while i < len(people):
        sub_list = people[i]
        j = 0;
        while j < len(sub_list):       
            print(sub_list[j], end=' ')
            j += 1;
        i += 1


print_names2([['John', 'Smith'], ['Mary', 'Keyes'], ['Jane', 'Doe']])    
# John Smith Mary Keyes Jane Doe 

答案 1 :(得分:1)

这个people[name]给出了一个列表&amp;这就是你在输出中看到列表的原因。你必须获取people [name] list的元素。

def print_names2(people):
    i = 0
    while i < len(people):
        print " ".join(people[i])
        i += 1

答案 2 :(得分:0)

print '\n'.join([" ".join(i) for i in people])

将您的print(to_print)更改为print(" ".join(to_print))