我可以在python中加入三个列表吗(字符串列表和两个数字列表)

时间:2018-09-28 02:31:37

标签: python

有没有一种方法可以连接一个字符串列表和2个数字列表,以便在连接它们时,连接后的列表将在命令后将它们取一个。

输入:

a = [john, bob, ted, Paul]
b = [22, 34, 56, 12]
c = [13, 98, 78, 60]

预期的输出量:

[john, 22, 13, bob, 34, 98, ted, 56, 78, Paul, 12, 60]

3 个答案:

答案 0 :(得分:2)

您可以将zip函数用于列表理解:

a = ['john', 'bob', 'ted', 'Paul']
b = [22, 34, 56, 12]
c = [13, 98, 78, 60]
outcome = [i for t in zip(a, b, c) for i in t]

outcome将变为:

['john', 22, 13, 'bob', 34, 98, 'ted', 56, 78, 'Paul', 12, 60]

请注意,您问题中的c列表中有一个额外的90不在您的预期输出中,因此我认为它是错字,因此将其删除。

答案 1 :(得分:0)

使用格式化的字符串并使用列表理解进行枚举

l = ['{}, {}, {}'.format(a[idx], b[idx], c[idx]) for idx, item in enumerate(a)]
['john, 22, 13', 'bob, 34, 98', 'ted, 56, 78', 'Paul, 12, 60']

答案 2 :(得分:0)

您的列表: 确保所有列表的尺寸相同。

a = ['john', 'bob', 'ted', 'Paul']
b = [22, 34, 56, 12]
c = [13, 98, 78, 90]

导入 numpy 一个用于处理数组的好模块

import numpy as np

制作numpy数组并根据需要调整其形状

a = np.array(a).reshape(-1,1)
b = np.array(b).reshape(-1,1)
c = np.array(c).reshape(-1,1)

沿着所需的轴连接它们。在您的情况下,该值为1(因为我们已经对数组进行了整形,所以按列排列)

f= np.concatenate((a,b,c),axis=1)

将它们平铺在一维阵列中

f = f.flatten()
print(f)