Python - 更改列表项

时间:2014-03-18 10:15:47

标签: python

最初,我们在列表中有名称和数字,有必要转换所有新列表

name1 = [u'pPlane1']
list1 = [19, 20, 21, 22, 24]

期望的结果:

list2 = ['pPlane1.e[19]', 'pPlane1.e[20]', 'pPlane1.e[21]', 'pPlane1.e[22]', 'pPlane1.e[24]']

如果有任何帮助,我将不胜感激:)

2 个答案:

答案 0 :(得分:4)

您可以使用列表推导直接从源创建新列表。通过使用字符串格式,您可以很好地创建每个元素的目标字符串。

list2 = ['{}.e[{}]'.format(name1[0], num) for num in list1]

如果name1包含多个名称,您可以创建如下的笛卡尔积:

list2 = ['{}.e[{}]'.format(name, num) for num in list1 for name in name1]

例如:

>>> name1 = ['pPlane1', 'pPlane2']
>>> list1 = [19, 20, 21]
>>> ['{}.e[{}]'.format(name, num) for num in list1 for name in name1]
['pPlane1.e[19]', 'pPlane2.e[19]', 'pPlane1.e[20]', 'pPlane2.e[20]', 'pPlane1.e[21]', 'pPlane2.e[21]']

答案 1 :(得分:3)

list2 = [name1[0]+'.e['+str(i)+']' for i in list1]