python反转列表解析_Python语法糖之:列表解析、集合解析和字典解析
☆
Python的列表解析 (list comprehensions)是在Python 2.0以来一直都有的功能,特别简洁、实用。而字典解析虽然曾经在Python 2.3版本中引入过,但后来因为与dict构造器功能相近而被取消,在Python 2.7和3.0之后才再次加入,体验了下,确实也比较方便。演示如下:
列表解析
numL = [-2, -1, 0, 1, 2]
# for循环遍历列表,并做平方运算
num_squareL = []
for i in numL:
num_squareL.append(i**2)
num_squareL
# [4, 1, 0, 1, 4]
# 使用列表解析一句话的事,变化了下写作顺序,从for读起,第一个空格前为返回值
num_squareL = [i**2 for i in numL]
num_squareL
# [4, 1, 0, 1, 4]
# 加一个If判断
# 获取奇数
# %取余数,脱离小学这么久,不写程序的人一般要反应下啥是取余数
odd_num_squareL = [i**2 for i in numL if i%2]
odd_num_squareL
# [1, 1]
# 加一个If判断
# 获取奇数
[i**2 for i in numL if i%2==1]
# [1, 1]
# 加一个If判断
# 获取偶数
[i**2 for i in numL if i%2==0]
# [4, 0, 4]
上一步的输出结果竟然是404,访问网站时最不喜欢见到的标识!(想起来有一次去一位老师的办公室拜访,结果门牌号是404,跟我们网站开发工程师对视一笑,”这个老师要找不到了~~”。好在网站开发工程师经验丰富,开发的网站不会有404,后来也确实合作发表了数据库的Nucleic Acids Research文章。)
集合解析
把列表解析的[替换为{即可,集合自带去重 (chong不是zhong)属性。
numS = set(numL)
numS
# {-2, -1, 0, 1, 2}
num_squareS = {i**2 for i in numS}
# 少了一部分
num_squareS
# {0, 1, 4}
字典解析
把列表解析的[替换为{,返回值是key:value形式。字典的key需唯一。
没有字典解析时,生成一个字典可以是下面这样写法:
[(i,i**2) for i in numL]
# [(-2, 4), (-1, 1), (0, 0), (1, 1), (2, 4)]
numDict = dict([(i,i**2) for i in numL])
numDict
# {-2: 4, -1: 1, 0: 0, 1: 1, 2: 4}
有了字典解析后,一个{替换了构造函数dict和列表解析[。
numDict = {i:i**2 for i in numL}
numDict
# {-2: 4, -1: 1, 0: 0, 1: 1, 2: 4}
numDict = {i:i**2 for i in numL if i>=0}
numDict
# {0: 0, 1: 1, 2: 4}
numDict = {i**2:i for i in numL}
# 重复key的覆盖
numDict
# {4: 2, 1: 1, 0: 0}
移除一部分Key (不过怎么看着都别扭,可能之前没用过,也可能可读性确实不好,倒是可以少写if判断了,直接从key里面扣除了)
numDict = {i:i**2 for i in numDict.keys() - [1,2]}
# numDict = {i:i**2 for i in (numDict.keys() - [1,2])}
numDict
# {0: 0, 4: 16}
python反转列表解析_Python语法糖之:列表解析、集合解析和字典解析相关推荐
- python 连续比较_python语法糖之连续比较表达式
关于python的连续比较的语法糖 比如有如下形式: (a < b) and (b < c),这样子看起来不够好看. python中提供了连续比较的语法糖: a < b < c ...
- python语法糖是什么_Python语法糖Syntactic Sugar
语法糖(Syntactic sugar): 计算机语言中特殊的某种语法 这种语法对语言的功能并没有影响 对于程序员有更好的易用性 能够增加程序的可读性 简而言之,语法糖就是程序语言中提供[奇技淫巧]的 ...
- python语法糖是什么意思_python语法糖是什么
语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添 ...
- assert函数_悉数Python函数传参的语法糖
TIOBE排行榜是程序开发语言的流行使用程度的有效指标,对世界范围内开发语言的走势具有重要参考意义.随着数据挖掘.机器学习和人工智能相关概念的风行,Python一举收获2018年年度语言,这也是Pyt ...
- python将多个列表合并_Python中多个列表与字典的合并方法
Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['','',''] b = ['','',''] a += b print(a) >>>['','','' ...
- python的编码表_Python算法之旅列表的纷争之二进制编码
列表的纷争之二进制编码 小美:最近数学老师给我们玩了有趣的猜年龄游戏,他显示了6张表格,你只要观察这6张表格,然后回答"是"与"不是"就可以了.老师可以根据你的 ...
- python中列表数据类型_Python数据类型之List列表实例详解
本文实例讲述了Python数据类型之List列表.分享给大家供大家参考,具体如下: list列表 1.概述: 通过之前的学习,我们知道变量可以存储数据,但是一个变量只能存储一个数据,现在有一个班级,班 ...
- python修改列表元素_python 3 基础之列表和列表添加元素、修改元素、查找元素、删除元素、排序、嵌套、取最值...
列表(与字符串相似,字符串用引号,而列表用中括号和逗号.引号,列表中可以保存多种数据类型) # 定义一个列表,格式:列表名=[元素1,元素2.元素3.......] 列表使用与字符串的索引编号一致,如 ...
- python中列表下标_Python中如何在列表中找到某个元素的下标
题目 对于列表 ["foo", "bar", "baz"]和在列表中的元素"bar",如何得到它的下标(1) 回答一 & ...
最新文章
- c# C++接口封装 汽车模拟仿真
- 【Leetcode】二分法左侧边界右侧边界模板
- shiro+jwt进行认证和授权的解决方案代码实例
- 【配置属性】—Entity Framework实例详解
- eclipse中查怎样看某个方法调用了谁
- 盘点下常用的接口测试工具,有几个你肯定没用过
- 思维导图很难做?MindManager教你一招致胜!
- cad二次开发的一些简单入门实例
- 普渡大学计算机科学师生比,公立常春藤高校普渡大学,附申请要求+录取难度!...
- c语言 笔试 多选题,全国计算机等级考试C语言十六个选择题类高频知识点
- 解决问题最重要的习惯不是一直盯着屏幕和编写修改代码,某些时候,阻止你成功的东西恰恰会是过于努力。这时候你需要暂停一下,平缓你的思绪,换一种方法或许能带给你不一样的效果。
- python用glob读取文件夹
- 全国青少年编程等级考试python一级真题2020年9月(含题库答题软件账号)
- 解决PDapp占据C盘空间的方法
- 再说说TCP和UDP源端口的确定
- css 颤动_颤动-微光效果
- Unity3d开发之十五:详解困惑,事件分发和侦听系统(委托实现)
- C# STMP发送邮件简例
- iphone5的 A6与 A5X处理器只相差10%而已?
- The 2019 ICPC Asia-East Continent Final A-City