连接数组中的两个列表,按句点分隔

时间:2017-05-31 11:32:11

标签: python arrays

这是我正在尝试做的事情: 说我有一个数组:

import numpy as np
a = ([['jon','jan','tom','sam'] , ['Jan', 'Feb', 'Mar', 'Apr'] , ['Red', 
'Blu', 'Gre', 'Yel']]);
np.transpose(a);

我想要做的是在新的4x1数组b中连接第1列和第3列,以便得到以下输出:

   b = ['jon.Red'
         'jan.Blu'
         'tom.Gre'
         'sam.Yel']

python中使用第1列和第3列并加入它们的最佳方法是什么,使用句点分隔两个字符串?

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

这将有效:

b = ['{}.{}'.format(x, y) for x, _, y in zip(*a)]
此处使用了

String formattinglist comprehensionzipargument unpacking以及值得一读的概念。

另一方面,Python不需要分号,a = ([...])中的外括号是多余的。

答案 1 :(得分:2)

您可以简单地使用列表理解和zip

>>> [e0 + '.' + e1 for (e0, e1) in zip(a[0], a[2])]
['jon.Red', 'jan.Blu', 'tom.Gre', 'sam.Yel']

答案 2 :(得分:1)

此外,你可以这样做:

a = ([['jon','jan','tom','sam'] , ['Jan', 'Feb', 'Mar', 'Apr'] , ['Red', 
'Blu', 'Gre', 'Yel']])

final = [".".join(k) for k in zip(a[0], a[-1])]
print(final)

输出:

['jon.Red', 'jan.Blu', 'tom.Gre', 'sam.Yel']