元组转字符串并对每个元素应用函数

2 投票
2 回答
751 浏览
提问于 2025-04-16 18:24

这里有一个元组 (a, b, c)

我想要得到 foo(a) + "\n" + foo(b) + "\n" + foo(c) 这样的结果。

有没有什么聪明的方法可以做到这一点,而不是手动一个一个来?

2 个回答

3

只要foo是一个字符串:

 "\n".join(map(foo,tup))
8

你可以这样做(如果foo()返回的是一个字符串):

tuple_ = (a,b,c)
"\n".join( foo(i) for i in tuple_ )

如果foo()没有返回字符串的话:

tuple_ = (a,b,c)
"\n".join( str(foo(i)) for i in tuple_ )

编辑

如果你在写Python 2.4之前的代码,可以使用这个,因为生成器表达式是在Python 2.4中新增的:

tuple_ = (a,b,c)
"\n".join([ str(foo(i)) for i in tuple_ ])

撰写回答