繁体   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