[英]Append multiple lists in a for loop | Python
N1_0 = []
M1_0 = []
N1_1 = []
M1_1 = []
N1_2 = []
M1_2 = []
N1_4 = []
M1_4 = []
N1_6 = []
M1_6 = []
X = [0,1,2,4,6]
for M in np.arange(0,1,0.2):
M2.append(float(M))
N2.append(N(float(M)))
for x in X:
for i in np.arange(0,5,1):
N1_x.append(N2[i]/math.sqrt(x+1))
在第二个 for 循环中,我想为 x 的值附加 N1_x。 我的意思是当 x=0 时,应该附加 N1_0 列表,当 x=1 时应该附加 Nx_1 列表,依此类推。 我试过这种方式,但它给出了一个错误,我假设变量在 python 中不能以这种方式工作。 我该怎么办? 任何帮助深表感谢。
尝试使用eval()
,这是示例。
eval('x = 5')
只是声明了一个值为 5 的变量x
,这意味着 Python 会将eval()
的字符串作为 Python 命令执行。
然后,这是解决方案。 {}
将替换为x
的值,然后整行将作为 python 命令执行。
for x in X:
for i in np.arange(0,5,1):
eval('N1_{}.append(N2[i]/math.sqrt(x+1))'.format(x))
组织数据的便捷方式是通过字典。
您可以首先将其初始化为一个空字典:
N1 = {}
然后,无论您当前正在访问何处,例如N1_1
您都可以使用N1[1]
。
由于您在内部循环中对N1_x
访问有问题(这不起作用),您只需将其更改为使用N1[x]
:
N1[x].append(N2[i]/math.sqrt(x+1))
另一个优点是您的初始化,例如:
N1_0 = []
N1_1 = []
...
尽管您可以将它们类似地硬编码为:
N1[0] = []
N1[1] = []
...
实际上,您可以在x
的外部循环中使用单个语句来执行这些操作:
for x in X:
N1[x] = []
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.