在Python中执行此列表任务的最短/最佳方法

时间:2011-02-27 07:38:51

标签: python list

我正在学习Python。我想做以下任务:

  • 输入:列表:例如['a', 'b', 'c']
  • 输出:单个字符串,用于连接列表中的所有元素,而每个元素都以相同的方式修改所有元素。

例如,我想将"-temp"添加到列表中的每个元素。所以,输出将是:

"a-temp b-temp c-temp"

当然,我可以编写C / C ++风格。但是,Python中有更优雅或有趣的方式吗?

6 个答案:

答案 0 :(得分:8)

>>> ' '.join( x+'-temp' for x in ['a', 'b', 'c'] )
'a-temp b-temp c-temp'

答案 1 :(得分:3)

列表理解是你的朋友:

lst =  ['a', 'b', 'c']
print ' '.join(['%s-temp' % item for item in lst])

答案 2 :(得分:3)

当您需要访问和使用列表的每个元素时,请使用列表推导。例如:

l = ['a', 'b', 'c']
' '.join([element + '-temp' for element in l])

答案 3 :(得分:3)

你走了:

s = " ".join(["%s-temp" % s for s in thelist])

包含一个列表推导,它通过字符串插值映射thelist的元素,生成一个新列表。然后用它们之间的空格连接得到最终的字符串。

答案 4 :(得分:1)

 '-temp'.join(list) 

我相信会这样做。


几乎:

 '-temp '.join(['a','b','c'])+'-temp'

答案 5 :(得分:0)

您可以使用map功能,如下所示:

l = ['a','b','c']
map((lambda s: s + '-temp'), l)