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']