我正在用 Python 撰寫以下代碼,我想使用 for 條件完成以下操作
if (datetime_obj.hour==7):
hour7.append(a)
if (datetime_obj.hour==8):
hour8.append(a)
if (datetime_obj.hour==9):
hour9.append(a)
if (datetime_obj.hour==10):
hour10.append(a)
if (datetime_obj.hour==11):
hour11.append(a)
if (datetime_obj.hour==12):
hour12.append(a)
if (datetime_obj.hour==13):
hour13.append(a)
if (datetime_obj.hour==14):
hour14.append(a)
if (datetime_obj.hour==15):
hour15.append(a)
小時是空陣列。
uj5u.com熱心網友回復:
制作hour一個串列串列,例如,hour = [[] for _ in range(24)]這樣hour[7]會給你你所擁有的任何東西hour7,等等。然后你可以簡單地做
hour[datetime_obj.hour].append(a)
沒有 ifs 或回圈。
如果采用的值datetime_obj.hour不是從 0 到某個數字的連續值,則改用串列字典。
uj5u.com熱心網友回復:
通過放棄對每個空串列(例如hour1, hour2)的特定參考,您的代碼似乎將得到極大的簡化。相反,您應該創建一些結構來保存串列,并允許您以合理的方式訪問它們。現有答案使用嵌套串列,這是一個不錯的選擇。另一種方法是使用dict:
hours = {i:[] for i in range(24)}
hours[datetime_obj.hour].append(a)
hours被初始化為一個字典,其中每個鍵都是一個整數(代表一天中的一個小時),每個值都是一個單獨的空串列。您可以直接使用 選擇那些空串列datetime_obj.hour,然后附加您的a.
您可以在此處查看相關討論;為了方便和功能,建議避免這些重復的順序命名變數!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/327037.html
