[問題] 新手迴圈給值

看板Python作者 (行不行)時間2年前 (2022/01/29 09:31), 2年前編輯推噓6(609)
留言15則, 4人參與, 2年前最新討論串1/1
大家好 敝人只有用過fortran和matlab 最近要學python遇到一個問題 以往我寫 do i=1,n x(i)=a+b end do 現在改寫 for i in range(...): x[i]=a+b 他顯示錯誤x須先定義 請問我要怎麼改迴圈內的那一行呢? 謝謝指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 172.58.155.165 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1643419893.A.5E9.html

01/29 09:47, 2年前 , 1F
舉例來說x是個list,定義x是空串列在迴圈前面,再x
01/29 09:47, 1F

01/29 09:47, 2年前 , 2F
.append(a+b),看看是不是你要的
01/29 09:47, 2F
確實這是我目前的做法 但是如果我想要x[任意i]=a+b呢? 謝謝您的回答 ※ 編輯: daumda (172.58.155.165 美國), 01/29/2022 09:58:13

01/29 10:36, 2年前 , 3F
x任意不叫做array,在其他語言叫map在python是dict
01/29 10:36, 3F

01/29 10:44, 2年前 , 4F
你要的是itertools吧?
01/29 10:44, 4F

01/29 10:45, 2年前 , 5F
x=list(range(n)),for i,j in enumerte(x): x[i]=a+b
01/29 10:45, 5F

01/29 16:30, 2年前 , 6F
為什麼要任意的i ? 如果是要建立一個相同初始值的
01/29 16:30, 6F

01/29 16:30, 2年前 , 7F
array ,我自己會建議就list comprehension,[a+b
01/29 16:30, 7F

01/29 16:30, 2年前 , 8F
for i in range(n)],如此會產生一個長度是n,值為
01/29 16:30, 8F

01/29 16:30, 2年前 , 9F
a+b的一維array
01/29 16:30, 9F

01/29 16:32, 2年前 , 10F
a, b 的值都一樣?
01/29 16:32, 10F

01/29 17:07, 2年前 , 11F
numpy 則是 numpy.full(n, fill_value = a+b)
01/29 17:07, 11F
抱歉誤會 我的意思是說如果我迴圈裡要給 x[2i+1]=a+b 那我就不能用append了吧 這樣要如何改寫呢? ※ 編輯: daumda (167.96.136.80 美國), 01/29/2022 22:17:35

01/29 22:41, 2年前 , 12F
迴圈外可以先寫 x={} 或 x=dict()
01/29 22:41, 12F

01/29 23:15, 2年前 , 13F
你就算x[2i+1] 你也是要先建立夠長的list啊
01/29 23:15, 13F

01/29 23:15, 2年前 , 14F
你寫fortran都不用先宣告size嗎?
01/29 23:15, 14F

01/30 01:20, 2年前 , 15F
dict 或是pandas
01/30 01:20, 15F
迴圈前先加x={}可行 感謝 ※ 編輯: daumda (167.96.143.49 美國), 01/30/2022 23:27:09
文章代碼(AID): #1Xz9ZrNf (Python)
文章代碼(AID): #1Xz9ZrNf (Python)