在Python3中设置两个压缩NumPy数组的字符串格式
我想使用pythons格式函数来打印numpy数组的后续数字 我有两个numpy阵列,假设:在Python3中设置两个压缩NumPy数组的字符串格式,python,arrays,python-3.x,list,numpy,Python,Arrays,Python 3.x,List,Numpy,我想使用pythons格式函数来打印numpy数组的后续数字 我有两个numpy阵列,假设: x=[1 2 3 4] y=[5 6 7 8] 现在我想打印以下内容: 1 5 2 6 3 7 4 8 我几乎可以通过以下方式实现这一目标: print('{} {} {} {}'.format(*zip(x,y))) 但它会产生: (1,5) (2,6) (3,7) (4,8) 我当然可以用 "{} {} {} {}".format(x[0], y[0], x[1], y[1]) 以此类推,
x=[1 2 3 4]
y=[5 6 7 8]
现在我想打印以下内容:
1 5 2 6 3 7 4 8
我几乎可以通过以下方式实现这一目标:
print('{} {} {} {}'.format(*zip(x,y)))
但它会产生:
(1,5) (2,6) (3,7) (4,8)
我当然可以用
"{} {} {} {}".format(x[0], y[0], x[1], y[1])
以此类推,但这需要知道数组的长度
注:
这行代码符合我的要求
print(*["%f %f"%(a,b) for a,b in zip(x,y)])
但这确实使用了旧的格式样式,我想知道新格式是否也可以。它看起来也有点古怪,我想:-D执行以下操作:
x=[1, 2, 3, 4]
y=[5, 6, 7, 8]
result = ' '.join([str(i) for e in zip(x, y) for i in e])
print(result)
输出
1 5 2 6 3 7 4 8
array([1, 5, 2, 6, 3, 7, 4, 8])
请执行以下操作:
x=[1, 2, 3, 4]
y=[5, 6, 7, 8]
result = ' '.join([str(i) for e in zip(x, y) for i in e])
print(result)
输出
1 5 2 6 3 7 4 8
array([1, 5, 2, 6, 3, 7, 4, 8])
您可以使用来交错两个列表中的元素:
list(chain.from_iterable(zip(x, y)))
[1, 5, 2, 6, 3, 7, 4, 8]
如果要按指定方式打印所有连接的图元,可以执行以下操作:
print(*chain.from_iterable(zip(x, y)))
1 5 2 6 3 7 4 8
您可以使用来交错两个列表中的元素:
list(chain.from_iterable(zip(x, y)))
[1, 5, 2, 6, 3, 7, 4, 8]
如果要按指定方式打印所有连接的图元,可以执行以下操作:
print(*chain.from_iterable(zip(x, y)))
1 5 2 6 3 7 4 8
您可以使用zip()
l1 = [0, 2, 4, 6, 8]
l2 = [1, 3, 5, 7, 9]
for i, j in zip(l1, l2):
print(i)
print(j)
输出:
0
1
2
3
4
5
6
7
8
9
您可以使用zip()
l1 = [0, 2, 4, 6, 8]
l2 = [1, 3, 5, 7, 9]
for i, j in zip(l1, l2):
print(i)
print(j)
输出:
0
1
2
3
4
5
6
7
8
9
来点什么
np.array(list(zip(a,b))).flatten()
输出
1 5 2 6 3 7 4 8
array([1, 5, 2, 6, 3, 7, 4, 8])
来点什么
np.array(list(zip(a,b))).flatten()
输出
1 5 2 6 3 7 4 8
array([1, 5, 2, 6, 3, 7, 4, 8])
也可以通过以下方式实现:
通常情况下,@yatu和itertools.chain给出的方法是可行的,特别是如果您希望所有元素都用空格分隔。但是starmap
在您希望在对之间使用一些特殊格式时可能会很方便,例如:
>>> print(*starmap("{}:{}".format, zip(x, y)))
1:5 2:6 3:7 4:8
也可以通过以下方式实现:
通常情况下,@yatu和itertools.chain给出的方法是可行的,特别是如果您希望所有元素都用空格分隔。但是starmap
在您希望在对之间使用一些特殊格式时可能会很方便,例如:
>>> print(*starmap("{}:{}".format, zip(x, y)))
1:5 2:6 3:7 4:8
既然你用numpy,那你呢
>>> ' '.join(np.vstack((x, y)).T.flatten().astype(str))
'1 5 2 6 3 7 4 8'
既然你用numpy,那你呢
>>> ' '.join(np.vstack((x, y)).T.flatten().astype(str))
'1 5 2 6 3 7 4 8'
再加入一个
("{} "*len(x)*2).format(*np.ravel(list(zip(x,y))))
'1 5 2 6 3 7 4 8 '
再加入一个
("{} "*len(x)*2).format(*np.ravel(list(zip(x,y))))
'1 5 2 6 3 7 4 8 '
因此,使用print(*[“{}{}”.a,b的格式(a,b)为zip格式(x,y)])
。你有99%的成功率。您可以删除列表:print(*({}{}).format(a,b)表示a,b在zip(x,y))中)
所以使用print(*[{}{}.format(a,b)表示a,b在zip(x,y)]
。你有99%的成功率。您可以删除列表:print(*({}{}).zip格式(x,y)中a,b的格式(a,b))