Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将元组返回到字符串中,为什么它只返回元组列表的第一个索引?_Python - Fatal编程技术网

Python 将元组返回到字符串中,为什么它只返回元组列表的第一个索引?

Python 将元组返回到字符串中,为什么它只返回元组列表的第一个索引?,python,Python,如何在元组列表中包含所有元素 def convert(list_tup): for a,b,c in list_tup: return c + ' ' + a + ' ' + b strings = [('w', 'x','2'), ('y', 'z', '3')] print(convert(strings)) 输出为:2wx 它只返回元组列表的第一个索引 这是我使用print(c+“”+a+“”+b) 预期产出: 2 w x 3 y z 还有一种方法可以在不使

如何在元组列表中包含所有元素

def convert(list_tup):
    for a,b,c in list_tup:
        return c + ' ' + a + ' ' + b

strings = [('w', 'x','2'), ('y', 'z', '3')]
print(convert(strings))
输出为:
2wx
它只返回元组列表的第一个索引

这是我使用
print(c+“”+a+“”+b)

预期产出:

2 w x 
3 y z
还有一种方法可以在不使用字符串空格的情况下分隔字符串,而返回
c+''+a+'+b

像sep=
这是因为这一行:

返回c+''+a+''+b
您正在使函数在第一次
迭代后返回

您可以使用
列表理解
f字符串
来完成我认为您需要的操作

试试这个:

def转换(列表安装):
返回[f'{c}{a}{b}列表中a、b、c的[f'{c}{a}{b}]
字符串=[('w','x','2'),('y','z','3')]
对于转换中的字符串(字符串):
打印(字符串)
以下是如何:

def convert(list_tup):
    
    return '\n'.join([' '.join((tup[-1],)+tup[:-1]) for tup in list_tup])

strings = [('w','x','2'), ('y', 'z', '3')]

print(convert(strings))
输出:

2 w x
3 y z

之所以只得到“2wx”,是因为for循环中有一个return语句。在第一次迭代中,它从函数返回

您可以直接在for循环中包含打印。此外,您可以使用逗号(,)代替
'


您不能将
return
放在循环中,并期望它重复返回值——一旦它返回第一个值,函数就完成了。但是,如果您试图生成一系列值,您可以使用
yield
而不是
return
轻松地将其转换为函数。然后当你调用你的函数时,你会得到一个对象,你可以对它进行迭代以得到值的序列。例如:

def convert(list_tup):
    for a,b,c in list_tup:
        yield c + ' ' + a + ' ' + b

strings = [('w', 'x','2'), ('y', 'z', '3')]
for s in convert(strings):
    print(s)
给予

或者,您可以使用
list
对这些值进行迭代,并将它们放入列表中:

print(list(convert(strings)))

在第一次迭代后,您将从函数返回。不清楚您希望从函数返回什么。每行之间用换行符分隔的字符串?
2 w x
3 y z
print(list(convert(strings)))
['2 w x', '3 y z']