【发布时间】:2013-08-27 19:23:13
【问题描述】:
使用 python 我想在同一行打印一系列数字。我如何使用 python 来做到这一点,我可以通过不添加 \n 来使用 C 来做到这一点,但是我该如何使用 python 来做到这一点。
for x in xrange(1,10):
print x
我正在努力得到这个结果。
1 2 3 4 5 6 7 8 9 10
【问题讨论】:
标签: python python-2.7
使用 python 我想在同一行打印一系列数字。我如何使用 python 来做到这一点,我可以通过不添加 \n 来使用 C 来做到这一点,但是我该如何使用 python 来做到这一点。
for x in xrange(1,10):
print x
我正在努力得到这个结果。
1 2 3 4 5 6 7 8 9 10
【问题讨论】:
标签: python python-2.7
>>>print(*range(1,11))
1 2 3 4 5 6 7 8 9 10
Python 一行打印范围
【讨论】:
* 究竟是什么意思?
* 解压序列。
* 文档的链接吗?这很难用谷歌搜索。
*的用法有几个线程。你可以参考here
Python 2
for x in xrange(1,11):
print x,
Python 3
for x in range(1,11):
print(x, end=" ")
【讨论】:
for i in range(10):
print(i, end = ' ')
您可以为结束字段提供任何分隔符(空格、逗号等)
这适用于 Python 3
【讨论】:
str.join 在这种情况下是合适的
>>> print ' '.join(str(x) for x in xrange(1,11))
1 2 3 4 5 6 7 8 9 10
【讨论】:
这是一个老问题,xrange 在 Python3 中不受支持。
你可以试试——
print(*range(1,11))
或
for i in range(10):
print(i, end = ' ')
【讨论】:
同样可以使用stdout来实现。
>>> from sys import stdout
>>> for i in range(1,11):
... stdout.write(str(i)+' ')
...
1 2 3 4 5 6 7 8 9 10
或者,也可以使用reduce() 来完成同样的操作:
>>> xrange = range(1,11)
>>> print reduce(lambda x, y: str(x) + ' '+str(y), xrange)
1 2 3 4 5 6 7 8 9 10
>>>
【讨论】:
[print(i, end = ' ') for i in range(10)]
0 1 2 3 4 5 6 7 8 9
这是一个与@Anubhav 相同的列表理解方法
【讨论】:
print(*[i for i in range(10)], sep=" ") 这样可以避免创建@OneCricketeer 提到的空列表
i for i in。只需print(*range(10))
range 对象在解压时不会创建内部列表?
for i in range(1,11):
print(i)
我知道这是一个老问题,但我认为现在可行
【讨论】:
另一个单行 Python 3 选项,但带有显式分隔符:
print(*range(1,11), sep=' ')
【讨论】:
n = int(input())
for i in range(1,n+1):
print(i,end='')
【讨论】:
在打印函数内部使用end = " "
代码:
for x in range(1,11):
print(x,end = " ")
【讨论】:
虽然已经给出了问题的答案。我想补充一下,如果我们需要打印没有空格的数字,那么我们可以使用以下代码
for i in range(1,n):
print(i,end="")
【讨论】:
这是一个可以处理 x 单行或多行的解决方案,例如 scipy pdf:
from scipy.stats import multivariate_normal as mvn
# covariance matrix
sigma = np.array([[2.3, 0, 0, 0],
[0, 1.5, 0, 0],
[0, 0, 1.7, 0],
[0, 0, 0, 2]
])
# mean vector
mu = np.array([2,3,8,10])
# input
x1 = np.array([2.1, 3.5, 8., 9.5])
x2 = np.array([[2.1, 3.5, 8., 9.5],[2.2, 3.6, 8.1, 9.6]])
def multivariate_normal_pdf(x, mu, cov):
x_m = x - mu
if x.ndim > 1:
sum_ax = 1
t_ax = [0]
t_ax.extend(list(range(x_m.ndim)[:0:-1])) # transpose dims > 0
else:
sum_ax = 0
t_ax = range(x_m.ndim)[::-1]
x_m_t = np.transpose(x_m, axes=t_ax)
A = 1 / ( ((2* np.pi)**(len(mu)/2)) * (np.linalg.det(cov)**(1/2)) )
B = (-1/2) * np.sum(x_m_t.dot(np.linalg.inv(cov)) * x_m,axis=sum_ax)
return A * np.exp(B)
print(mvn.pdf(x1, mu, sigma))
print(multivariate_normal_pdf(x1, mu, sigma))
print(mvn.pdf(x2, mu, sigma))
print(multivariate_normal_pdf(x2, mu, sigma))
【讨论】: