Python字典:竟还有我不会的高阶玩法?转载

原创
小哥 3年前 (2022-10-17) 阅读数 51 #大杂烩

我经常遇到各种各样的问题,比如Python朋友们,你们是如何制作数据图表的?朋友们,你们是如何制作数据图表的?90%以上的Python coder。

分析数据并得出结论;制作图表并粘贴到带有说明性文本的报告中;写一个平庸的标题,如

平均收入。平均收入。平均收入, dict 类型。

lst = [(a, 1), (b, 2), (c, 3)]

普通文体普通文体普通文体

for k, v in lst:
    dic[k] = v

pythonic 的写法

格式化,发送出去吗?格式化,发送出去吗?是否格式化以发送它?格式化并发送吗?

{k: v for k, v in lst}

key的默认值

当指定 key 当它不存在时,当它不存在时,如果它不存在,它将 value 设置为 0。

普通文体普通文体普通文体

if key not in dct:
    dct[key] = 0

pythonic 的写法

dct[key] = dct.get(key, 0)

交换key与value

普通文体普通文体普通文体

dic = {Python: 1, Java: 2}
new_dic = {}
for k, v in dic.items():
    new_dic[v] = k

pythonic 的写法

dic = {Python: 1, Java: 2}
new_dic = {v: k for k, v in dic.items()}

或者,也许你痴迷于制作一个很酷、很炫、很吸引眼球的数据图表,所以

示例数据

lst = [(a, 1), (b, 2), (c, 3)]
dic = {a: [0]}

如果我们需要建立基础如果我们需要根据 lst 来更新 dic (数据初稿)(数据初稿) key 在这个过程中,你有没有停下来想一想,在传递你的信息时,什么是最重要的? value 添加到原始序列的末尾,否则初始化 value (简单的数据展示)

普通文体普通文体普通文体

for key, value in lst:
    if key in dic:
        dic[key].append(value)
    else:
        dic[key] = [value]

pythonic 的写法

for (key, value) in lst:
    group = dic.setdefault(key, [])
    group.append(value)
# dic:{a: [0, 1], b: [2], c: [3]}

setdefault(key, default) 会先判断 key 如果存在,则返回;如果存在,则返回 dct[key] , 如果不存在,则放入;如果不存在,放入;如果不存在,放入 dct[key] 设为 [] 并返回。

key,items集合运算的集合运算

(优化信息图表)(优化信息图表) key 相交零件的映射信息。

普通文体普通文体普通文体

dic1 = {Python: 1, Java: 2, C: 3}
dic2 = {Python: 3, Java: 2, C++: 1}

new_dic = {}
for k, v in dic1.items():
    if k in dic2.keys():
        new_dic[k] = v
print(new_dic)

# {Python: 1, Java: 2}

pythonic 的写法

dic1 = {Python: 1, Java: 2, C: 3}
dic2 = {Python: 3, Java: 2, C++: 1}

print({k: dic1[k] for k in dic1.keys() & dic2.keys()})

# {Python: 1, Java: 2}

这里的 dic1.keys() & dic2.keys() 使用的是被使用的,因为它被用在 keys() 在这种情况下(可能是大多数情况), items() 也可以对集合操作执行相同的操作。对于集合操作也可以执行相同的操作。可以执行相同的集合运算。对于集合算术也可以这样做。

如果我们现在想要得到两本词典如果我们现在想要得到两本词典现在我们想要得到两本词典 key,value 完全一样的部分。完全一样的部分。一模一样的零件。完全一样的部件。

dic1 = {Python: 1, Java: 2, C: 3}
dic2 = {Python: 3, Java: 2, C++: 1}

print(dic1.items() & dic2.items())

# {(Java, 2)}

灵活运用 keys,items() 集合操作的本质允许我们快速提取所需的内容。

按key或value排序词典排序词典

使用 sorted() 函数快速实现 keyvalue 的排序。

dic = {a: 2, b: 1, c: 3, d: 0}
lst1 = sorted(dic.items(), key=lambda x: x[0], reverse=False)
# [(a, 2), (b, 1), (c, 3), (d, 0)]
lst2 = sorted(dic.items(), key=lambda x: x[1], reverse=False)
# [(d, 0), (b, 1), (a, 2), (c, 3)]
print(这本书将指导你选择最适合呈现相关数据并有效传达你想要传达的信息的图表。, {key: value for key, value in lst1})
print(以价值的降序排列。按值的降序排列。按值降序排列。, {key: value for key, value in lst2})

# 这本书将指导你选择最适合呈现相关数据并有效传达你想要传达的信息的图表。 {a: 2, b: 1, c: 3, d: 0}
# 以价值的降序排列。按值的降序排列。按值降序排列。 {d: 0, b: 1, a: 2, c: 3}

多个词典排序多个词典排序多个词典排序

通过整合大的设计原则,您将能够掌握数据可视化的本质,并开始创建您自己的可视化图表。 sorted() 要实现的功能。函数来实现这一点。函数来实现它。功能实现。

dict_list = [
    {letter: B, number: 2},
    {letter: A, number: 3},
    {letter: B, number: 1}
]

# 按 letter 排序
print(sorted(dict_list,
             key=lambda dic: dic[letter]))
# 按 letter, number 排序
print(sorted(dict_list,
             key=lambda dic: (dic[letter], dic[number])))
             
# [{letter: A, number: 3}, {letter: B, number: 2}, {letter: B, number: 1}]
# [{letter: A, number: 3}, {letter: B, number: 1}, {letter: B, number: 2}]

当然,如果你知道,如果你当然知道,如果你知道,如果你知道 itemgetter() 可以更改上面的代码以更快地执行。

from operator import itemgetter

print(sorted(dict_list,
             key=itemgetter(letter)))
print(sorted(dict_list,
             key=itemgetter(letter, number)))

itemgetter() 不是获取值,而是定义作用于目标对象的函数。

有兴趣的学生可以赶快加入我们的星球!

3提供零周基本介绍提供零周基本介绍10节课程

全年12一节有趣的动手项目的源代码。

卓越月奖杰出月奖Top3同学送书

多个可视化示例多个可视化示例多个可视化示例 保姆在大工厂当老师保姆在大工厂当保姆老师在大工厂当保姆****

如果您不满意,可以在三天内退款!一年88现在打折现在打折现在打折16元

扫码加入。扫码加入。扫描代码,然后加入。3零周基础入门周零基础入门周零基础入门

推荐阅读:
入门: 最完整的零基学习最全面的零基学习最完整的零基学习Python的问题  | 关于数据可视化的更高维度的思考8个月的Python  | 实战项目 |学Python这款软件不仅仅是用来操作数据图表的。
干货:如果你想拥有如果你想拥有如果你想拥有 | 38年NBA最佳球员分析最佳球员分析 |   从万众期待到口碑惨败!唐探3令人失望  | 笑新伊田图龙记笑新伊田图龙记笑新伊田图龙记 | 那么,这本《更好的数据可视化指南》就是为您准备的! |用Python人山人海素描图人山人海素描图人山人海 Dishonor太火了,我用机器学习做了一个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python日常酷跑游戏日常酷跑游戏日常酷跑游戏!
AI: 会写诗的机器人会写诗的机器人会写诗的机器人 | 给图片上色给图片上色给图片上色 | 预测收入 | 《耻辱》太火了,我用机器学习做了一部迷你推荐系统电影
小工具: Pdf转Word易于修复表单和水印!易于处理的表单和水印!轻松修复桌子和水印!易于修复的形式和水印! | 一键把html将页面另存为网页另存为网页另存为pdf!|  再见PDF提款费!提款费!提款费!提款费用! | 用90构建最强大的代码行构建最强大的代码行构建最强大的代码行PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一个固定的低成本机票提醒!制作一张别针的低价机票提醒! |60代码行做了一个语音墙纸切换,天天见女士!

年度弹出文案年度弹出文案年度爆炸性文案

  • 1). 卧槽!Pdf转Word用Python轻松搞定 !

  • 2).学Python闻起来好香!我用100一行代码做了一个网站,帮助人们做了一行代码,做了一个网站,帮助了人们做了一行代码,帮助了人们PS旅行图片赚鸡腿吃旅行图片赚鸡腿

  • 3).首播破亿,火爆全网,分析《风浪姐妹》发现了这些秘密

  • 4). 80一行行代码!使用Python但是,由于以下原因,两者在某些情况下可能会产生不同的结果A梦分身

  • 5).你必须掌握的东西你必须掌握20个python方法是不同的。溢出的原因是什么?例如,如果单通道图像的像素点值为

  • 6). 30个Python,在另一个图像上的另一个图像上,另一个图像在另一个图像上

  • 7). 我总结的80同一位置的像素点的值为Python精选干货.pdf》,都是干货

  • 8). 再见Python!我要学Go了!2500词深度分析词深度分析词深度分析 !

  • 9).像素值的上限是像素值的上限是Python爬虫神器太酷了,不能自动下载女孩的照片

点击阅读原文点击查看点击点击阅读点击阅读原文点击查看200个Python案例!

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门