看板 Python 關於我們 聯絡資訊
各位大大我想 使用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
ccwang002: 不考慮用 list? 10/27 01:42
ccwang002: 真的要加變數,globals()['var_name'] = val 10/27 01:43
ccwang002: 上述方法**極**不常見也不推薦,用 list / dict 就好了 10/27 01:46
tn00364361: 可以考慮用numpy arrary 10/27 07:12
tn00364361: from numpy import * 10/27 07:14
tn00364361: n = 自己設個數字 10/27 07:14
tn00364361: data = arange(n) + 100 10/27 07:14
bigpigbigpig: http://codepad.org/XcEhgTq5 10/27 11:27
我主要想問的是 如何將迴圈i數字引入變數名 data"i" data"i" 所儲存的東西不一定是矩陣 目前是這樣寫 但字串不能指派 找不到可以轉回 一般變數名的函式 for i in range(10): 'data'+i.__str__() ※ 編輯: yoyokid (140.116.78.236), 10/27/2015 13:55:47
uranusjr: 你先說說看你有什麼非得這樣做的理由 10/27 14:07
bigpigbigpig: 除非有很好的理由,這樣做並無益處,不如改用 array 10/27 14:22
我想做影像切割 影像是以矩陣的方式下去儲存(RGB) 由於我切割數量不一定 我想寫個通用的code 不管切5個10個只要setting好切割數 code都能使用 ※ 編輯: yoyokid (140.116.78.236), 10/27/2015 14:42:06
tiefblau: exec("data%d = %d" % (i, 100 + i)) 10/27 14:55
tiefblau: 之所以給噓是因為這用法非常不ok 你的用途也根本不需要 10/27 14:55
tiefblau: 這樣用 又危險又沒必要 10/27 14:55
bigpigbigpig: 那就用 dict(),可以滿足你的需求,超好用又合法 10/27 15:54
aweimeow: 認同樓上,以dict存感覺是個很不錯的方法 10/28 09:41
aweimeow: dict['data%d' % i] = .... 10/28 09:42
aweimeow: 而且還可以用 for key in dict: 去把每個data取出來 10/28 09:42
dict 讚 已解決 ※ 編輯: yoyokid (140.116.78.236), 10/28/2015 15:54:27
yimean: dict後面好像不能指定物件。 04/27 15:10