这是我正在尝试做的事情: 说我有一个数组:
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列并加入它们的最佳方法是什么,使用句点分隔两个字符串?
感谢您的帮助。
答案 0 :(得分:3)
这将有效:
b = ['{}.{}'.format(x, y) for x, _, y in zip(*a)]
此处使用了 String formatting,list comprehension,zip
和argument 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']