python的各种推导式(列表推导式、字典推导式、集合推导式)

简介:

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:

  • 列表(list)推导式

  • 字典(dict)推导式

  • 集合(set)推导式

一、列表推导式

1、使用[]生成list

基本格式

1
[表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件]

例1:  过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母

1
2
3
>>> names = ['Bob','Tom','alice','Jerry','Wendy','Smith']    
>>> [name.upper() for name in names if len(name)>3]  
['ALICE', 'JERRY', 'WENDY', 'SMITH']

更多示例:http://www.jb51.net/article/67157.htm



生成间隔5分钟的时间列表序列:

1
["%02d:%02d" %(h,m) for h in range(0, 24) for m in range(0, 60, 5)]


二、字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:

1
2
3
4
=  [ "%02d:%02d"  % (h,m)  for  in  range ( 0 24 for  in  range ( 0 60 5 )]
=  {key: 0  for  key  in  s}
print (d)
print ( sorted (d.key()))

更多示例:http://www.cnblogs.com/tkqasn/p/5977653.html


三、集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

例一:

squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])



本文转自 326647452 51CTO博客,原文链接:http://blog.51cto.com/svsky/1945844,如需转载请自行联系原作者
相关文章
|
7天前
|
索引 Python
Python的列表操作有哪些?
Python的列表操作非常丰富,包括列表的创建、元素的访问、修改、添加、删除、切片、排序等多个方面。
25 12
|
4天前
|
Python
|
9天前
|
Python
【Azure Function】发布 Python Function 到 Azure 成功,但是无法显示Function列表
"module not found" error: "Failure Exception: ImportError: libpq.so.5: cannot open shared object file: No such file or directory. Cannot find module."
|
15天前
|
存储 Python 容器
Python字典
【7月更文挑战第12天】Python字典
12 2
|
15天前
|
存储 缓存 Python
Python中的列表(List)和元组(Tuple)是两种重要的数据结构
【7月更文挑战第12天】Python中的列表(List)和元组(Tuple)是两种重要的数据结构
14 1
|
17天前
|
Python
列表推导式(解析式)python
列表推导式(解析式)python
|
2天前
|
网络协议 开发者 Python
深度探索Python Socket编程:从理论到实践,进阶篇带你领略网络编程的魅力!
【7月更文挑战第25天】在网络编程中, Python Socket编程因灵活性强而广受青睐。本文采用问答形式深入探讨其进阶技巧。**问题一**: Socket编程基于TCP/IP,通过创建Socket对象实现通信,支持客户端和服务器间的数据交换。**问题二**: 提升并发处理能力的方法包括多线程(适用于I/O密集型任务)、多进程(绕过GIL限制)和异步IO(asyncio)。**问题三**: 提供了一个使用asyncio库实现的异步Socket服务器示例,展示如何接收及响应客户端消息。通过这些内容,希望能激发读者对网络编程的兴趣并引导进一步探索。
11 4
|
1天前
|
网络协议 Python
网络世界的建筑师:Python Socket编程基础与进阶,构建你的网络帝国!
【7月更文挑战第26天】在网络的数字宇宙中,Python Socket编程是开启网络世界大门的钥匙。本指南将引领你从基础到实战,成为网络世界的建筑师。
6 2
|
2天前
|
开发者 Python
Python Socket编程:不只是基础,更有进阶秘籍,让你的网络应用飞起来!
【7月更文挑战第25天】在网络应用蓬勃发展的数字时代,Python凭借其简洁的语法和强大的库支持成为开发高效应用的首选。本文通过实时聊天室案例,介绍了Python Socket编程的基础与进阶技巧,包括服务器与客户端的建立、数据交换等基础篇内容,以及使用多线程和异步IO提升性能的进阶篇。基础示例展示了服务器端监听连接请求、接收转发消息,客户端连接服务器并收发消息的过程。进阶部分讨论了如何利用Python的`threading`模块和`asyncio`库来处理多客户端连接,提高应用的并发处理能力和响应速度。掌握这些技能,能使开发者在网络编程领域更加游刃有余,构建出高性能的应用程序。
10 3