c1 = 'xxx'
c2 = 'ooo'
c3 = 'ddd'
for m in range(1, 4):
print('c'+str(m))
在下希望印出
xxx
ooo
ddd
結果印出
c1
c2
c3
滿常卡在這種地方的,懇請知道的大大幫忙解惑,謝謝m(__)m
Code
c1 = 'xxx'
c2 = 'ooo'
c3 = 'ddd'
for m in range(1, 4):
print(locals()["c"+str(m)])
Result
xxx
ooo
ddd
說明
c1, c2, c3
不是"字串" 而是變數,你print()
語法是印出'c'
這個字而不是印出變數,
所以需要使用locals()
or globals()
語法去調用變數在印出。
以下程式碼可以:
c1 = 'xxx'
c2 = 'ooo'
c3 = 'ddd'
for m in range(1, 4):
print(globals()['c'+str(m)])
為什麼不把C1-C3
轉為陣列
用陣列的方式處理?
如果還有其他大神
能用字串代表變數的話
希望能學習~
感謝樓上兩位的語法~~
我只想到用陣列~
以我的工作經驗,有時候可能會有多個相同類型但是不同日期的報表要進行資料處理分析的話,我才會用到我所提供的方法XD
#舉例說明我要讀某個地方的兩個檔案檔案("*.xlsx"),但是檔名相似只有日期不同(20230101.xlsx, 20230102.xlsx),然後分別讀進Python個別做後續處理。
date_list = ["20230101", "20230102"]
for date in date_list:
locals()["df_" + date] = pd.read_excel("{}.xlsx".format(date))
#如此一來我就會有df_20230101& df_20230102 兩個變數的Dataframe可以進行處理了
要不然其實以此問題確實用陣列的方式就可以解決了XD
謝謝大大⊙口⊙!
以我的工作經驗,有時候可能會有多個相同類型但是不同日期的報表要進行資料處理分析的話,我才會用到我所提供的方法XD
你這種狀況我通常會在前面建個空dict來存,用locals來存我個人是覺得不是很清楚。而且locals會把某些你不想收集的也收進去。
基本上locals我幾乎不用。
result = dict()
date_list = ["20230101", "20230102"]
for date in date_list:
result["df_" + date] = pd.read_excel("{}.xlsx".format(date))
你應該先把Python 基本的工作馬,List 好好的練習一下.
而不是急著去做應用,然後東卡西卡. 總是有人急忙忙要砍柴,如果發覺柴刀不夠利,
是不是先把柴刀磨一磨.
資訊這條路,要學的東西很多,不要急躁浮躁.
另外我要說一下,有些人一直在Python的相關問答中,講陣列,這不是特定指誰,是有些人已經有在用
np,但是很多基本的問題,其實就是一些練習,最好是先使用語言基本的元素,鍛鍊基本的技巧,
再來使用進階更強大的套件.
我看到不少,來問Python問題的人,有些是問Pandas,問答的過程中,發覺對方對List完全沒有
理解.
這是幾個月前,我回答你關於List的.
https://ithelp.ithome.com.tw/questions/10210562
經過這些年觀察問Python問題的,一些書本大多是 List 簡單先帶過,然後教迴圈,
然後傻傻的迴圈取List內的值,後面也沒有再補充 List的用法,甚至還有人來這裡問問題,
把List叫陣列也不少,基本上就是把傳統C的教材,稍微改一下,就可以叫做 PythonXXX 的書了.
缺乏Python風格及特色的介紹.