最初,我们在列表中有名称和数字,有必要转换所有新列表
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]']
如果有任何帮助,我将不胜感激:)
答案 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]