Python 是否有一种更短(非重复)的方法来创建相同浮动的列表?

Python 是否有一种更短(非重复)的方法来创建相同浮动的列表?,python,numpy,shorthand,Python,Numpy,Shorthand,是否可以用速记法写出以下内容: x = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5] 照我说的 x = ([0.5]*12)? 如果您使用的是python的内置列表,那么您所拥有的将起作用: x = [0.5] * 12 若您正在使用numpy并希望创建一个数组,那个么您要寻找的例程是 在这里提问时,你应该首先找到自己解决问题的方法,并在这里展示你的工作。 在您的情况下,这只是运行一段代码,检查是否有任何错误,以及

是否可以用速记法写出以下内容:

x = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
照我说的

x = ([0.5]*12)?

如果您使用的是python的内置列表,那么您所拥有的将起作用:

x = [0.5] * 12
若您正在使用numpy并希望创建一个数组,那个么您要寻找的例程是


在这里提问时,你应该首先找到自己解决问题的方法,并在这里展示你的工作。 在您的情况下,这只是运行一段代码,检查是否有任何错误,以及是否正确创建了列表

然而,要回答您的问题,要创建一个值为my_值n倍的列表,您可以使用以下for循环:

my_list = [my_value for _ in range(n)]
您的代码x=[0.5]*12也可以工作,因为python具有将整个变量相乘的功能,而不仅仅是将变量的值相乘

编辑:


由于约定,更改了变量名。循环变量没有被使用,所以正如mgilson告诉我的那样,调用它是很常见的。

要将它放到上下文中,下面是我的代码:

ambient_temp2 = [293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293]
Flow2 =     [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
LNG_range2 = np.array(([113]*18))
line_length = np.linspace(0.1,1,18)

df3 = pd.DataFrame({'Temp':ambient_temp2, 'Flow': Flow2, 'LNG': LNG_range2, 'LengthOfLine': line_length})

def Tline_mod(ambient_temp2, LNG_range2, Flow2, line_length):

ha = 8.14
k = 0.0026
Do = 0.2
Di = 0.003175
L = line_length
F = Flow2
Ta = ambient_temp2
Ts = LNG_range2
pi = 3.14159265
Q = (pi*(Ta-Ts))/(((1/ha*Do))+(1/(2*k))*math.log(Do/Di)) * L
e = (Q*3600)/F

df3['Enthalpy Result'] = e
plt.plot(line_length, e)
plt.rcParams.update({'font.size': 12})
plt.annotate('Line Length Effects', xy =(0.4,25000))
plt.show()
print df3

print Tline_mod(df3['Temp'], df3['LNG'], df3['Flow'], df3['LengthOfLine'])
我尝试了np.full方法,但不起作用

编辑****


它起作用了。。。。我只是太粗心了。谢谢大家:D

你真的试过了吗?你真的在使用numpy吗,或者你真的在使用列表吗?因为,您所拥有的将用于列表,而不是numpy。@mgilson,np.array[0.5]*12是否会不起作用?我猜您无法测试自己,看看这种语法是否有效,因为您的计算机上实际上没有解释器。这是相当常见的,例如,当您没有安装程序的管理权限时。如果是这样的话,一个在线解释器应该在紧要关头做——我喜欢用@Padraiccanningham——有很多方法可以用numpy来做。数组[0.5]*12应该可以工作。。。np.ones12*0.5也应该有效。我建议使用np.full12,0.5-我打赌这比使用np.array工厂更快,但谁知道呢?您必须对其计时以获得任何真实数据,这似乎太多了:-x=[0.5]*12个工作精细浮点是不可变的,因此没有问题。在不使用循环变量调用它的情况下,这是很常见的。因此,my_list=[我的u值在范围内]。变量名也很常见,像这样,而不是Java/Javascript风格的变量名。我不知道调用循环变量''.'的约定。现在就按照惯例编辑文章。
ambient_temp2 = [293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293]
Flow2 =     [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
LNG_range2 = np.array(([113]*18))
line_length = np.linspace(0.1,1,18)

df3 = pd.DataFrame({'Temp':ambient_temp2, 'Flow': Flow2, 'LNG': LNG_range2, 'LengthOfLine': line_length})

def Tline_mod(ambient_temp2, LNG_range2, Flow2, line_length):

ha = 8.14
k = 0.0026
Do = 0.2
Di = 0.003175
L = line_length
F = Flow2
Ta = ambient_temp2
Ts = LNG_range2
pi = 3.14159265
Q = (pi*(Ta-Ts))/(((1/ha*Do))+(1/(2*k))*math.log(Do/Di)) * L
e = (Q*3600)/F

df3['Enthalpy Result'] = e
plt.plot(line_length, e)
plt.rcParams.update({'font.size': 12})
plt.annotate('Line Length Effects', xy =(0.4,25000))
plt.show()
print df3

print Tline_mod(df3['Temp'], df3['LNG'], df3['Flow'], df3['LengthOfLine'])