Re: [問題] if含式一次比較一個陣列的內容(另一個問題)

看板Python作者 (轉角遇到愛)時間9年前 (2016/12/28 10:11), 9年前編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/1
※ 引述《qqq04737084 (qqq332)》之銘言: : 各位大大好, : 小弟是python菜鳥,最近寫程式遇到一個問題 : if(A==B or A==C or A==D ... A==Z ): : Do something : 可否將B,C,D,...,Z存成一個矩陣A1,然後直接用 : if(A==A1) : : 去做判斷 : 這樣可以避免程式很冗長的感覺。純粹是我意想天開的想法,想麻煩各位解答~~ : 謝謝。 剛好借這個問題想請問一個問題~ 如果有一些已命名的變數如 a_1=1 a_2=2 a_3=3 a_4=4 def a_5(): print("GG"); 在python中有沒有類似php可以 for i in range(1,5): ${"a_{$i}"} --> 這種在 python 怎麼寫? 這樣的寫法呢~~? 謝謝 ---- 原來可以用 vars()來處理這類的問題 :) vars()["a_5"]() //output GG -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.134.48.253 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1482891107.A.1B4.html

12/28 10:26, , 1F
eval ? 但我總覺得寫出這樣code的人腦袋...
12/28 10:26, 1F

12/28 11:02, , 2F
自問自答,原來用vars()作的到
12/28 11:02, 2F

12/28 11:02, , 3F
print(vars()["a_"+str(i)]);
12/28 11:02, 3F
※ 編輯: shadowjohn (140.134.48.253), 12/28/2016 11:10:44

12/28 11:16, , 4F
以前看到一些 Perl 程式碼也會做類似的事 @@~
12/28 11:16, 4F

12/28 11:17, , 5F
不過儘量不要這樣子寫應該比較好吧...
12/28 11:17, 5F

12/28 11:31, , 6F
或是locals()
12/28 11:31, 6F

12/28 12:30, , 7F
可以用%吧
12/28 12:30, 7F

12/28 16:46, , 8F
乖乖做陣列很難嗎
12/28 16:46, 8F
文章代碼(AID): #1OOnzZ6q (Python)
文章代碼(AID): #1OOnzZ6q (Python)