[英]How do I convert a Python list of lists of lists into a C array by using ctypes?
[英]How do I convert 3 Lists in a combined array of 3 members in Python?
我是Python 3的新手,我来自Java和javascript。
我怎么去
a = ['a', 'b', 'c']
b = [1, 2, 3]
c = ['red', 'green', 'blue']
至
x = [ ['a', 1, 'red'], ['b', 2, 'green'], ['c', 3, 'blue'] ]
以一种简单的方式,而无需使用一些循环(while / for / map)?
谢谢
这就是内置zip
目的。 zip
接受任意数量的可迭代对象,并返回包含来自相应索引的项的元组。
>>> a = ['a', 'b', 'c']
>>> b = [1, 2, 3]
>>> c = ['red', 'green', 'blue']
>>> list(map(list, zip(a, b, c)))
[['a', 1, 'red'], ['b', 2, 'green'], ['c', 3, 'blue']]
zip
生成的元组zip
在这里明确转换为列表,因为您请求了列表。 如果没有特别的理由让列表代替元组,则使用
>>> list(zip(a, b, c))
[('a', 1, 'red'), ('b', 2, 'green'), ('c', 3, 'blue')]
假设所有列表的长度相同,则可以使用列表理解
x = [[a [i],b [i],c [i]]对于范围(len(a))中的i
这将导致
[['a',1,'红色'],['b',2,'绿色'],['c',3,'蓝色']]
def combine_list(*args):
return map(list, args)
final = list(combine_list(a,b,c))
它将像:
[['a','b','c'],[1、2、3],['红色','绿色','蓝色']]
正如您提到的“以一种简单的方式,无需使用某些循环(while / for / map)”
这是我能想到的最简单的方法:
首先,定义包含数据的a,b,c,p,q,r作为临时列表,并定义一个空列表x以存储最终输出。 简单地使用list的append函数将a,b和c顺序附加到x。 打印x,您将获得列表列表,而无需使用任何for循环! 但是,这将增加额外的内存和鸭子输入的风险。
a = ['a', 'b', 'c']
b = [1, 2, 3]
c = ['red', 'green', 'blue']
p = []
q = []
r = []
x = []
p.append(a[0])
p.append(b[0])
p.append(c[0])
q.append(a[1])
q.append(b[1])
q.append(c[1])
r.append(a[2])
r.append(b[2])
r.append(c[2])
x.append(p)
x.append(q)
x.append(r)
print(x)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.