簡體   English   中英

Python:如何將枚舉元素用作字符串?

[英]Python: How can I use an enumerate element as a string?

我有一個正在枚舉的 dict1.keys() 列表,我想將該元素用作字符串。

for i,j in enumerate(dict1.keys()): str(j) = somethingElse
>>> SyntaxError: can't assign to function call

https://dbader.org/blog/python-enumerate將枚舉實體描述為以下元組:(index, element)。 type(j)<class 'str'> ,我可以打印,但不能用作變量。

編輯:

for i,j in enumerate(dict1.keys()): j = somethingElse

EDIT2:我認為問題可能出在熊貓上。 第一行有效,第二行無效。

for i,j in enumerate(dict1.keys()): list1.append(j)
for i,k in enumerate(list1): k = pd.DataFrame(dict1[k]['Values'])

EDIT3:第二行確實有效,但僅以一個 df 結束,名稱為“k”而不是鍵。 但繼承人什么林試圖。 每個 dict 使用其鍵名轉換為 df:

for i,j in enumerate(dict1.keys()): j = pd.DataFrame(dict1[j]['Values'])

EDIT4:根據下面的評論,我切換到鍵上的 for 循環(不需要顯式調用),但它仍然不會使用元素 'i' 作為變量。 但是,從下面鏈接的問題來看,元素可以用作字典中的鍵。 在將問題簡化為“使用列表項作為數據框的名稱”並進行搜索后,它會出現問題。 我也會發布作為答案:

dict2={}
for i in dict1: dict2[i] = pd.DataFrame(dict1[i]['Values'])

..因此保留了名稱。 實際上,這類似於 Sheri 對列表的回答,但名稱保留與 dfs 的關聯。 可能沒有辦法使用普通字符串以外的其他東西來設置變量值,但我將為此提出一個不同的問題

使用列表中的元素作為數據框名稱

因為您是在 for 循環內動態生成 Pandas 數據幀,所以在最后打印j它會顯示最后生成的數據幀。 您應該將數據框存儲在列表中嘗試使用:

listOfFrame = [] 
for j in dict.keys(): 
    j = pd.DataFrame(dict[j]['Values'])
    listOfFrame.append(j)

實際上j將是str (或您在dict中使用的任何其他類型的鍵)。

實際問題出在循環體上,如錯誤消息所述:

str(j) = somethingElse

不是有效的 Python。 左側是對str函數的調用,因此您不能為其賦值。

根據您既不想enumerate也不想遍歷 dict 鍵的注釋。 相反,您希望迭代其

dfs = []
for val in dict1.values():
    dfs.append(pd.DataFrame(val['Values']))

但是,這通常會在 Python 中沒有顯式循環的情況下編寫,例如使用列表理解

dfs = [pd.DataFrame(val['Values']) for val in dict1.values()]

從下面鏈接的問題中,元素可以用作字典中的鍵。 在將問題簡化為“使用列表項作為數據框的名稱”並進行搜索后,它會出現問題。 我也會發布作為答案:

dict2={}
for i in dict1: dict2[i] = pd.DataFrame(dict1[i]['Values'])

..因此保留了名稱。 實際上,這類似於 Sheri 對列表的回答,但名稱保留與 dfs 的關聯。 可能沒有辦法使用普通字符串以外的其他東西來設置變量值,但我將為此提出一個不同的問題

使用列表中的元素作為數據框名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM