[問題] for 迴圈指派變數

看板Python作者 (Anthony Joshua)時間10年前 (2015/10/27 01:30), 10年前編輯推噓1(2115)
留言18則, 7人參與, 6年前最新討論串1/1
各位大大我想 使用for迴圈來大量指派變數或矩陣等等 例如 for i in range(n): data i = i+100 >>> data0 = 100 >>> data1 = 101 . . . 依此類推 請問有什麼指令適合? 小弟python新手 麻煩各位高手指導 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.78.236 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1445880649.A.C00.html

10/27 01:42, , 1F
不考慮用 list?
10/27 01:42, 1F

10/27 01:43, , 2F
真的要加變數,globals()['var_name'] = val
10/27 01:43, 2F

10/27 01:46, , 3F
上述方法**極**不常見也不推薦,用 list / dict 就好了
10/27 01:46, 3F

10/27 07:12, , 4F
可以考慮用numpy arrary
10/27 07:12, 4F

10/27 07:14, , 5F
from numpy import *
10/27 07:14, 5F

10/27 07:14, , 6F
n = 自己設個數字
10/27 07:14, 6F

10/27 07:14, , 7F
data = arange(n) + 100
10/27 07:14, 7F

10/27 11:27, , 8F
我主要想問的是 如何將迴圈i數字引入變數名 data"i" data"i" 所儲存的東西不一定是矩陣 目前是這樣寫 但字串不能指派 找不到可以轉回 一般變數名的函式 for i in range(10): 'data'+i.__str__() ※ 編輯: yoyokid (140.116.78.236), 10/27/2015 13:55:47

10/27 14:07, , 9F
你先說說看你有什麼非得這樣做的理由
10/27 14:07, 9F

10/27 14:22, , 10F
除非有很好的理由,這樣做並無益處,不如改用 array
10/27 14:22, 10F
我想做影像切割 影像是以矩陣的方式下去儲存(RGB) 由於我切割數量不一定 我想寫個通用的code 不管切5個10個只要setting好切割數 code都能使用 ※ 編輯: yoyokid (140.116.78.236), 10/27/2015 14:42:06

10/27 14:55, , 11F
exec("data%d = %d" % (i, 100 + i))
10/27 14:55, 11F

10/27 14:55, , 12F
之所以給噓是因為這用法非常不ok 你的用途也根本不需要
10/27 14:55, 12F

10/27 14:55, , 13F
這樣用 又危險又沒必要
10/27 14:55, 13F

10/27 15:54, , 14F
那就用 dict(),可以滿足你的需求,超好用又合法
10/27 15:54, 14F

10/28 09:41, , 15F
認同樓上,以dict存感覺是個很不錯的方法
10/28 09:41, 15F

10/28 09:42, , 16F
dict['data%d' % i] = ....
10/28 09:42, 16F

10/28 09:42, , 17F
而且還可以用 for key in dict: 去把每個data取出來
10/28 09:42, 17F
dict 讚 已解決 ※ 編輯: yoyokid (140.116.78.236), 10/28/2015 15:54:27

04/27 15:10, 6年前 , 18F
dict後面好像不能指定物件。
04/27 15:10, 18F
文章代碼(AID): #1MBcD9m0 (Python)
文章代碼(AID): #1MBcD9m0 (Python)