【问题标题】:What i did wrong in my python function?我在 python 函数中做错了什么?
【发布时间】:2012-11-10 14:20:09
【问题描述】:
def make_str_from_row(board, row_index):

    ''' (list of list of str, int) -> str

    Return the characters from the row of the board with index row_index
    as a single string.

    >>> make_str_from_row([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 0)
    'ANTT'
    '''
    for i in range(len(board)):
        i = row_index
        print(board[i])

这打印['A', 'N', 'T', 'T']

我如何像这样打印'ANTT'

【问题讨论】:

  • 你的缩进是错误的。使用四个空格。
  • i = row_index 这行很奇怪。你的意思是if i == row_index:
  • @0605002:那也很奇怪
  • @0605002:除了一个值之外什么都不做,为什么还要遍历i 的所有值?
  • @Eric 哈哈,是的!我有点晚了。

标签: python python-3.x


【解决方案1】:

嗯,你得到了你要打印的东西!

boardstrs 的列表,所以board[i] 必须是strs 的列表,当你写print(board[i]) 时,你得到一个列表!

你可能需要这样写:

print(''.join(board[i]))

【讨论】:

    【解决方案2】:

    你可以通过使用来简化很多

    >>> def make_str_from_row(board, row_index):
    ...     print repr(''.join(board[row_index]))
    ... 
    >>> make_str_from_row([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 0)
    'ANTT'
    

    您获得该输出的原因是因为您打印了一个列表,因为 board 的元素是列表。通过使用join,你会得到一个字符串。

    另外,我不明白如果要更改循环遍历的索引,为什么要使用循环。

    【讨论】:

    • 我试试你写的..它导致ANTT而不是'ANTT'......''必须出现
    • 你可以使用repr。反映在答案中。
    • @FelipeGaldino:这几乎肯定不是你想要的。我怀疑你应该return row,而不是print repr(row)
    • @Eric:这也是我的猜测,但你知道他们怎么说:客户永远是对的。还是?
    【解决方案3】:

    我认为这就是你想要做的:

    def make_str_from_row(board, row_index):
        ''' (list of list of str, int) -> str
    
        Return the characters from the row of the board with index row_index
        as a single string.
    
        >>> make_str_from_row([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 0)
        'ANTT'
        '''
        for cell in board[row_index]:
            print cell,
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-20
      • 2015-11-19
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 2018-12-31
      • 1970-01-01
      相关资源
      最近更新 更多