作者shadowjohn (轉角遇到愛)
看板Python
標題Re: [問題] if含式一次比較一個陣列的內容(另一個問題)
時間Wed Dec 28 10:11:43 2016
※ 引述《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
推 tiefblau: eval ? 但我總覺得寫出這樣code的人腦袋... 12/28 10:26
→ shadowjohn: 自問自答,原來用vars()作的到 12/28 11:02
→ shadowjohn: print(vars()["a_"+str(i)]); 12/28 11:02
※ 編輯: shadowjohn (140.134.48.253), 12/28/2016 11:10:44
推 Neisseria: 以前看到一些 Perl 程式碼也會做類似的事 @@~ 12/28 11:16
→ Neisseria: 不過儘量不要這樣子寫應該比較好吧... 12/28 11:17
→ tiefblau: 或是locals() 12/28 11:31
推 king22649: 可以用%吧 12/28 12:30
→ uranusjr: 乖乖做陣列很難嗎 12/28 16:46