首页 > 解决方案 > 我们可以使用返回函数在新行中获取这些列表吗?

问题描述

我是 Python 新手,所以这个问题可能看起来很愚蠢。

我想在新行中打印(使用返回函数)每个列表,如果语句为真,则将字符串添加到列表中的一项:

row1=[1,2,3]
row2=[4,5,6]
row3=[7,8,9]

def return_func():
    a=1
    if a==1:
      return row1[0]+'b',row1[1],row1[2]
      return row2
      return row3

这不起作用,如果有任何有效的方法,您可以在此处发布。谢谢

标签: pythonpython-3.xlistreturn

解决方案


这段代码有很多问题。

首先,您只能在函数期间返回某个时间点,然后函数结束。

如果要返回多个列表,则必须:

def return_lists():
    return [1, 2, 3], [4, 5, 6], [7, 8, 9]

lst_1, lst_2, lst_3 = return_lsts()

如果你想打印东西,你必须使用print()命令,而不是return. return完成函数并将结果发送回调用它的地方。

其次,你不能添加一个整数和一个字符串,如果你想将一个字符串添加到列表的第一个索引,你应该这样做:

lst_1 = [1, 2, 3]
lst_1[0] = str(lst_1[0]) + 'b'

最后,你不应该使用全局变量。您应该在调用函数时发送列表:

def return_lists(lst_1, lst_2, lst_3):
    return lst_1, lst_2, lst_3

lst_1, lst_2, lst_3 = return_lists([1, 2, 3], [4, 5, 6], [7, 8, 9])

把所有东西放在一起:

def return_func(row1, row2, row3):
    a=1
    if a==1:
      row1[0] = str(row1[0]) + 'b'
    return row1, row2, row3

row1=[1,2,3]
row2=[4,5,6]
row3=[7,8,9]

row1_new, row2_new, row3_new = return_func(row1, row2, row3)
print(row1_new)
print(row2_new)
print(row3_new)

推荐阅读