python循环遍历字典元素问题求指教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python循环遍历字典元素问题求指教相关的知识,希望对你有一定的参考价值。

字典 a=('x','y'):(0,0),('x','y'):(1,1),('x','y'):(2,2)
请问如何遍历字典元素('x','y')

参考技术A

你的x,y是代表的未知元素吧,不然a就只有('x','y'):(0,0)这一个元素了。下面说问题:

对于字典的key值遍历可以用items()函数来实现,比如下面的代码:

a=('a','b'):(0,0),('c','d'):(1,1),('e','f'):(2,2)
for i,j in a.items():
    print(i,':',j)

输出的结果是:

('c', 'd') : (1, 1)

('e', 'f') : (2, 2)

('a', 'b') : (0, 0)

也就是说对for i,j in a.items()这句话,i得到是字典的key值,j得到的是字典的value,如果想只遍历字典的key值,也就是你要的('x','y'),那么把print(i,' : ',j)改成print(i)就可以了(具体输出格式你自己定制就好,不一定按我的)

参考技术B

字典的值不会重复,你可以试一下。

a=('x','y'):(0,0),('x','y'):(1,1),('x','y'):(2,2)
print(a)

结果是('x', 'y'): (2, 2)

不存在重复键的遍历问题

Python---循环遍历带有数据框的字典

【中文标题】Python---循环遍历带有数据框的字典【英文标题】:Python---loop over a dictionary with dataframes 【发布时间】:2020-02-14 08:37:29 【问题描述】:

我有一个数据框字典

list_of_dfs='df1:Dataframe','df2:Dataframe','df3:Dataframe','df4:Dataframe'

每个数据框都包含相同的变量(价格、数量、价格、“销售/购买”),我想操纵这些变量以最终得到一个新的数据框子集。我的新数据框必须通过变量中包含“销售”的观察来过滤名为“销售/购买”的变量。

sell=df[df["Sale/Purchase"]=="Sell"]

我的问题是如何遍历字典以获取包含这个新子集的新字典?

我不知道如何编写这个命令来执行循环。我知道它必须这样开始:

 # Create an empty dictionary called new_dfs to hold the results
new_dfs = 
# Loop over key-value pair
for key, df in list_of_dfs.items():

但是由于我对循环数据帧字典的了解很少,我不知道如何编写过滤器命令。如果有人可以帮助我,我将非常感激。

提前致谢。

【问题讨论】:

这个list_of_dfs 是一个集合,而不是一个列表或字典。 new_dfs = k: df[df["Sale/Purchase"]=="Sell"] for k, df in list_of_dfs.items()。假设你写错了引号'df1': df1 【参考方案1】:

试试这个,

dict_of_dfs='df1':'Dataframe','df2':'Dataframe','df3':'Dataframe','df4':'Dataframe'


# Create an empty dictionary called new_dfs to hold the results
new_dfs = 
# Loop over key-value pair
for key, df in dict_of_dfs.items():
    new_dfs[key] = df[df["Sale/Purchase"]=="Sell"]

说明:

new_dfs =  # Here we have created a empty dictionary.
# dictionary contains keys and values.
# to add keys and values to our dictionary, 
# we need to do it as shown below,
new_dfs[our_key_1] = our_value_2
new_dfs[our_key_2] = our_value_2
.
.
.

【讨论】:

谢谢。你能解释一下 new_dfs[key] 是什么意思吗?如果您指定它属于关键部分,python 如何理解这将过滤位于字典值中的数据帧?【参考方案2】:

类似:

sells = k: v for (k, v) in list_of_df.items() if v["Sale/Purchase"] == "Sell"

这种模式称为字典理解。根据this question 的说法,这是最快和最 Pythonic 的方法。

您应该提供您正在处理的数据的示例以获得更准确的答案。

【讨论】:

【参考方案3】:

你可以映射一个函数:

lambda df: df[df["Sale/Purchase"] == "Sell"]

如何:

语法 = map(fun, iter)

map(lambda df: df[df["Sale/Purchase"] == "Sell"], list_of_dfs)

您可以将其映射到listset

对于dict

df_dict = k: df[df["Sale/Purchase"]=="Sell"] for k, df in list_of_dfs.items()

【讨论】:

以上是关于python循环遍历字典元素问题求指教的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯python之for循环(一)

IReport 4.5.0如何遍历嵌套的list,求大神指教?

求大神指教:python将文件内容转字典

python:遍历列表并用相应的字典值替换元素

Python字典遍历 未遍历所有元素

go语言,为啥range循环取的指针地址和直接用数组取的指针地址不一样,求指教