[问题] 新手循环给值

楼主: daumda (行不行)   2022-01-29 09:31:31
大家好
敝人只有用过fortran和matlab
最近要学python遇到一个问题
以往我写
do i=1,n
x(i)=a+b
end do
现在改写
for i in range(...):
x[i]=a+b
他显示错误x须先定义
请问我要怎么改循环内的那一行呢?
谢谢指教
作者: robert09080 (Aspettarei)   2022-01-29 09:47:00
举例来说x是个list,定义x是空串行在循环前面,再x.append(a+b),看看是不是你要的
作者: lycantrope (阿宽)   2022-01-29 10:36:00
x任意不叫做array,在其他语言叫map在python是dict
作者: OrzOGC (洞八达人.拖哨天王)   2022-01-29 10:44:00
你要的是itertools吧?x=list(range(n)),for i,j in enumerte(x): x[i]=a+b
作者: robert09080 (Aspettarei)   2022-01-29 16:30:00
为什么要任意的i ? 如果是要建立一个相同初始值的array ,我自己会建议就list comprehension,[a+bfor i in range(n)],如此会产生一个长度是n,值为a+b的一维arraya, b 的值都一样?
作者: lycantrope (阿宽)   2022-01-29 17:07:00
numpy 则是 numpy.full(n, fill_value = a+b)
作者: papple23g (逆道者)   2022-01-29 22:41:00
循环外可以先写 x={} 或 x=dict()
作者: lycantrope (阿宽)   2022-01-29 23:15:00
你就算x[2i+1] 你也是要先建立够长的list啊你写fortran都不用先宣告size吗?
作者: robert09080 (Aspettarei)   2022-01-30 01:20:00
dict 或是pandas

Links booklink

Contact Us: admin [ a t ] ucptt.com