我已經定義了一個帶有鍵和資料框的字典,就像這樣
data = {'Value':[0,1,2,3,4]}
kernel_df = pd.DataFrame(data, index=['M0','M1','M2','M3','M4'])
my_dict = {'dummy':kernel_df}
并且my_dict稍后填充適當的資料。接下來,我想從第二個鍵開始迭代字典,因為第一個(索引 0)是虛擬的,我想跳過它。如果我使用
for key in my_dict:
然后也讀取第一個密鑰。如果我使用
for i in {1..len(my_dict)}:
df = my_dict[i]
我收到以下錯誤
for i in {1..len(my_dict)}:
AttributeError: 'float' object has no attribute 'len'
我該如何解決?
uj5u.com熱心網友回復:
字典沒有固有的順序(好吧,Python 3.7中的事情發生了變化,現在它們保持插入順序。
但是,您仍然無法像索引串列那樣索引字典。(好吧,如果你真的愿意的話,你可以接近那種行為,但我會在最后解決這個問題)。
在您的情況下,您可以遍歷鍵并跳過鍵,如果它是“虛擬的”(或您定義的任何鍵)。
for key in my_dict:
if key != 'dummy':
do your thing
也許更好的選擇是一旦您知道您的字典已經填充了正確的值,就簡單地洗掉“虛擬”鍵。
現在,回到獲取“第一把鑰匙”,因為一個 >= Python 3.7 用戶:
好吧,如果有人真的想依賴特定版本功能的技術實作,他們可能會做這樣的事情:
for idx, key in enumerate(my_dict.keys()):
if idx != 0:
do your thing
不過,這遠不是慣用的代碼,所以真的,你不應該這樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358184.html
下一篇:從JSON中消除不必要的部分
