首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将元素作为字符串与一组数组中的分隔符按列联接

如何将元素作为字符串与一组数组中的分隔符按列联接
EN

Stack Overflow用户
提问于 2018-04-02 23:22:41
回答 4查看 310关注 0票数 1

我有以下数组(长度都相同):

代码语言:javascript
复制
array_1=[1,2,3]
array_2=[4,5,6]
array_3=[7,8,9]

我需要的是将两个数组中的每个元素连接起来,以获得:

代码语言:javascript
复制
array_4=['1-4-7','2-5-8','3-6-9']

这必须在大约30000条记录上完成,所以我在寻找一些紧凑的东西。

EN

回答 4

Stack Overflow用户

发布于 2018-04-02 23:25:26

使用zip()隔离列,使用str()为每个元素创建字符串,使用str.join()将经过stringified的元素连接在一起。

代码语言:javascript
复制
array_1=[1,2,3]
array_2=[4,5,6]
array_3=[7,8,9]

meta_array = [array_1, array_2, array_3]
array_4 = ['-'.join(str(item) for item in column) for column in zip(*meta_array)]

assert array_4==['1-4-7','2-5-8','3-6-9']
票数 6
EN

Stack Overflow用户

发布于 2018-04-02 23:39:17

使用numpy.column_stack()的另一种方式

代码语言:javascript
复制
import numpy as np
array_1=[1,2,3]
array_2=[4,5,6]
array_3=[7,8,9]

col_stacked = np.column_stack([array_1, array_2, array_3])
print(col_stacked)
#array([[1, 4, 7],
#       [2, 5, 8],
#       [3, 6, 9]])

现在,只需遍历col_stacked并使用"-"连接值。首先,我们需要将值转换为str,这可以使用map()来完成

代码语言:javascript
复制
array_4 = ["-".join(map(str, a)) for a in col_stacked]
print(array_4)
#['1-4-7', '2-5-8', '3-6-9']

注意::只有当所有数组的长度都相同时,column_stack()才有效。

票数 1
EN

Stack Overflow用户

发布于 2018-04-02 23:41:49

在我看来,您似乎希望拥有一个新的字符串数组,其中包含all arrays中某个位置的元素。如果数组的数量很少,下面的代码应该是可能的解决方案:

代码语言:javascript
复制
for index in range(len(array_1)):
    newFormedElement = str(array_1[index]) + '-' + str(array_2[index]) + '-' + str(array_3[index])
    array_4.append(newFormedElement)

假设记录了,您指的是数组中的元素数。但是,如果您使用的是30000个数组,则可能需要使用numpy并遍历数组列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49613958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档