我有一个2项元组的列表,我想将它们转换为2个列表,其中第一个包含每个元组中的第一个项目,第二个列表包含第二个项目.
例如:
original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# and I want to become...
result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
是否有内置函数可以做到这一点?
可能重复:
Python中的转置/解压缩功能
我有一个如下所示的列表:
list = (('1','a'),('2','b'),('3','c'),('4','d'))
Run Code Online (Sandbox Code Playgroud)
我想将列表分成2个列表.
list1 = ('1','2','3','4')
list2 = ('a','b','c','d')
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
list1 = []
list2 = []
for i in list:
list1.append(i[0])
list2.append(i[1])
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更优雅的解决方案.
我正在使用Julia中的PyPlot库进行绘图,并且散布函数似乎有一点"不便",即只接受坐标作为两个参数:一个数组用于所有x值,另一个用于所有y值,即
scatter(xxs,yys)
Run Code Online (Sandbox Code Playgroud)
用x=[x1,x2,...],和y=[y1,y2,...].
如果我有一个具有坐标点的集合或元组,例如,
A=([x1,y1],[x2,y2],...)
Run Code Online (Sandbox Code Playgroud)
直接在Python中使用pyplot/matplotlib解决了一个内核中的不便,正如StackOverflow中所述:
plt.scatter(*zip(*li))
Run Code Online (Sandbox Code Playgroud)
但似乎Julia上的拉链完全不同.到目前为止,我已经提出了以下解决方案,但它似乎相当不优雅:
x=[]
y=[]
for j in selectos
append!(x,j[2])
append!(y,j[1])
end
scatter(x,y, marker="o",c="black")
Run Code Online (Sandbox Code Playgroud)
是否有更"功能"或单线(或双线)方法?