合并3个列表中的3个相应项

时间:2014-08-07 07:24:41

标签: python list join merge

我有3个相同长度的列表。

L1=[1,2,3,4,5,6]
L2=['a','b','c','d','e','f']
L3=[A,B,C,D,E,F]

我尝试了很多东西,但似乎没什么用。

我怎样才能得到它:

L4=[1aA, 2bB, 3cC, 4dD, 5eE, 6fF]

提前致谢。 对不起,我提供任何正确的代码,但我已经出门了。

更新:

这是一个小小的更新。我不知道它是否有太大变化。建议的解决方案首先运作良好。 我有的名单:

noHit = ['Aeculus hippocastaneum', 'Angelica sylvetris', 'Ilex aguifolium', 'Majanthemum bifolium', 'Carduus palustre', 'Valeriana Sambucifolia', 'Betula pusbescens', 'Stellaria nemorum ssp. nemorum', 'Pteridium aquilinium', 'Dryopteris delatata', 'Equisetum Hyemale', 'Equisetum Sylvaticum', 'Vicia Sepium', 'Quercus rubra', 'Fagus Sylvatica', 'Geranium robertisianum', 'Hypochoeris radicata', 'Stellaria crassifolia', 'Abies alba', 'Holcus Lanatus', 'Deschampsia caespitosa', 'Holcus Mollis', 'Milium Effusum', 'Prunus. serutina', 'Rubus sect. corylifolli', 'Rubus Sect. caesii', 'Salix intermedia', 'Prunus ceracifera', 'Uplandicum nyman', 'Salix ssp.', 'Salix smithiana', 'Scophularia nodosa', 'Juncus coriglomeratus']

arrows = [' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ', ' ------> ']

badSpelling = [['Aesculus hippocastanum'], ['Angelica sylvestris'], ['Ilex aquifolium'], ['Maianthemum bifolium'], ['Cirsium palustre'], ['Valeriana dioica'], ['Betula pubescens'], ['Stellaria nemorum'], ['Pteridium aquilinum'], ['Dryopteris dilatata'], ['Equisetum hyemale'], ['Equisetum sylvaticum'], ['Vicia sepium'], ['Quercus robur'], ['Fagus sylvatica'], ['Geranium robertianum'], ['Hypochaeris radicata'], ['Stellaria pallida'], ['Arabis scabra'], ['Holcus lanatus'], ['Deschampsia cespitosa'], ['Holcus mollis'], ['Milium effusum'], ['Prunus spinosa'], ['Rubus spectabilis'], ['Rubus caesius'], ['Salix cinerea'], ['Prunus cerasifera'], ['Sparganium natans'], ['Salix repens'], ['Salix triandra'], ['Scrophularia nodosa'], ['Juncus conglomeratus']]

现在我想把它打印出来:

Aeculus hippocastanum ----> Aesculus hippocastanum

将该部分写入txt文件。 使用

可以很好地工作
holder=[]
holder = [a+b+str(c) for a,b,c in zip(noHits,arrowList,close)]
filnavnUdNHC = 'art NHC.txt'    
f3 = open(filnavnUdNHC, 'w')
for hold in holder:
    f3.write(hold)
    f3.write('\n')

除了它写如下:

Aeculus hippocastaneum ------> ['Aesculus hippocastanum']
Angelica sylvetris ------> ['Angelica sylvestris']
Ilex aguifolium ------> ['Ilex aquifolium']

哪个足够好,但不是很好。而且,感谢答案,因为列表不同,所以我很难重复它。

更新:

解决它像:

test=[]
led=''
ll=''
i=0
for noHit in noHits:
    led=(str(noHit)+' -----> ')
    ll=''.join(close[i])
    led = led+ll
    test.append(led)
    i += 1
    print led

它很难看,但它确实有效。如果您有任何解决方法,请发布以便更好地学习:)

4 个答案:

答案 0 :(得分:3)

L1 = [1,2,3,4,5,6]                                          
L2 = ['a','b','c','d','e','f']                              
L3 = ['A','B','C','D','E','F']                              
L4 = [str(a)+b+c for a,b,c in zip(L1,L2,L3)]
print L4

<强>输出

['1aA', '2bB', '3cC', '4dD', '5eE', '6fF']

答案 1 :(得分:2)

>>> L1 = [1,2,3,4,5,6]                                          
>>> L2 = ['a','b','c','d','e','f']                              
>>> L3 = ['A','B','C','D','E','F']          
>>> ["{}{}{}".format(*i) for i in zip(L1, L2, L3)]
['1aA', '2bB', '3cC', '4dD', '5eE', '6fF']

在Python2上,您还可以使用地图

>>> map("{}{}{}".format, L1, L2, L3)
['1aA', '2bB', '3cC', '4dD', '5eE', '6fF']

答案 2 :(得分:0)

这应该适合你:

[''.join(triple) for triple in zip(map(str, L1), L2, L3)]

它是如何运作的?

首先,您需要将第一个列表的元素从整数更改为字符串表示。您可以使用map函数str()来执行此操作。

然后,您可以使用zip()创建来自相应元素的3元素列表。

最后,你可以使用list comprehension和join从每个三元组构造单个字符串。

答案 3 :(得分:0)

同一主题的另一个变体 - 更简洁和通用,或许:

[''.join(map(str,l)) for l in zip(L1,L2,L3)]
相关问题