2

我想通过使用 python 3.3.2 创建一个具有固定前缀的字符串列表,其中后缀基于列表的大小。

例如我有一个等于 3 的列表elementslen(elements)输出应该是一个列表output = ['prefix_1','prefix_2','prefix_3']

我可以通过使用循环来做到这一点:

elements = ['elem1','elem2','elem3']
output = []
for i in range(len(elements)):
    output.append('prefix_'+str((i+1)))

这可行,但对我来说似乎有点...... unpythonic。有没有更蟒蛇的方式来做到这一点?例如列表理解?

4

3 回答 3

4

使用enumerate, str.format:

>>> elements = ['elem1','elem2','elem3']
>>> output = ['prefix_{}'.format(i) for i, elem in enumerate(elements, 1)]
>>> output
['prefix_1', 'prefix_2', 'prefix_3']
于 2013-11-12T08:43:22.930 回答
1
o = ["prefix_" + str(i+1) for i in range(len(elements))]
于 2013-11-12T08:43:42.470 回答
1
output=['prefix_'+str(i+1) for i in range(len(['elem1','elem2','elem3']))]
于 2013-11-12T08:44:21.030 回答