是否有更短(非重复)的方法来创建相同浮点数的列表?
Is there a shorter (non-repetitive) way to create a list of the same float?
是否可以在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
并且想要创建一个数组,您正在寻找的例程是 full
import numpy as np
x = np.full(12, 0.5)
在这里提问的时候,你应该首先想办法自己解决问题,并在这里展示你的工作。
在您的情况下,这只是 运行 代码位并检查是否有任何错误以及列表是否正确创建。
然而,要回答您的问题,要创建一个 n 乘以值 my_value 的列表,您可以使用以下 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
是否可以在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
并且想要创建一个数组,您正在寻找的例程是 full
import numpy as np
x = np.full(12, 0.5)
在这里提问的时候,你应该首先想办法自己解决问题,并在这里展示你的工作。 在您的情况下,这只是 运行 代码位并检查是否有任何错误以及列表是否正确创建。
然而,要回答您的问题,要创建一个 n 乘以值 my_value 的列表,您可以使用以下 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