嵌套列表使用循环

时间:2017-10-26 01:52:39

标签: python python-3.x list for-loop

我有以下python代码:

def display_game(guesses, clues):

    total = 'Guess\tClues\n****************\n'
    new = ''
    for i in range(len(guesses)):
        for letter in guesses[i]:
           new +=letter+ ' '
        return print(total+new +'\t'+ clue(clues)+'\n')      

def clue(clues):

    test = ''
    for i in range(len(clues)):
         for w in clues[i]:
            test = test + w + ' '
         return test.rstrip()

输出结果如下:

>>> display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']])

Guess   Clues
****************
Y P G G b b
O O G G b b b b

我得到了这个:

>>> display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']])

Guess   Clues
****************
Y P G G     b b

我做错了什么?

2 个答案:

答案 0 :(得分:0)

假设我想要的是什么(这不是给定的),首先,你不需要使用范围函数来遍历列表;只需使用in关键字。

其次,您将在第一个循环结束时返回。 Deindent your" return ...."声明,它应该没问题。

哦,return print(...)毫无意义。你要么打印要么你回来。

答案 1 :(得分:0)

你的整个功能很混乱,所以我只是重写了它:

def display_game(guesses, clues):
    output = 'Guess\tClues\n****************\n'

    for i in range(len(guesses)):
        for letter in guesses[i]:
            output += letter + ' '

        for letter in clues[i]:
            output += letter + ' '

        output += '\n'

    print(output)

display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']])

您可以尝试here