Python的一些进阶学习-2017.08.07
来源:互联网 发布:three.js dae 顶点数 编辑:程序博客网 时间:2024/06/05 22:36
一.列表,字典,集合的筛选
列表 的筛选
列表的筛选 有两种:1. filter #通过列表解析随机推导定义一个列表 In [2]: data =[randint(-10,10) for _ in xrange(10)] In [3]: data Out[3]: [10, -1, -3, 10, -7, -10, -9, 8, -9, 7] #通过filter函数筛选 (其实可以去看看filter源码咋实现的) In [4]: filter(lambda x: x>0 ,data) Out[4]: [10, 10, 8, 7] 2. 列表解析推导 In [6]: [x for x in data if x>=0] Out[6]: [10, 10, 8, 7] 突然想知道两种方式 哪种更优呢? In [7]: timeit filter(lambda x:x>=0 ,data) 1000000 loops, best of 3: **1.39 µs** per loop In [8]: timeit [x for x in data if x>=0] 1000000 loops, best of 3: **545 ns** per loop **发现列表解析通常比filter 更快**
字典的筛选
随机生成一个集合。
In [9]: {x: randint(60,100) for x in xrange(1,21)}
通过列表解析 键值对 来筛选 (比较简单)
In [15]: {k:v for k,v in d.iteritems() if v>90}
Out[15]: {3: 95, 10: 97, 15: 96}集合的筛选
继续用刚才的data给他转成集合:
In [16]: s= set(data)
In [17]: s
Out[17]: {-10, -9, -7, -3, -1, 7, 8, 10}
就用集合解析好了:
In [18]: {x for x in s if x>=0}
Out[18]: {7, 8, 10}
跟列表解析差不多 类似, 和字典解析的区别在于,字段多一个: ,多一个键值对的概念
二.为元组每个元素命名,提高程序的可持续发展~
1. 通过枚举的方式定义变量 #!/bin/python #-*- coding: UTF-8 -*- #name = 0 #sex = 1 #age = 2 #location= 3 #email = 4 name,sex,age,location,email = xrange(5) Student=('Gil','Male','28','zhejiang','woshigezhipeng@sina.com') print Student[name] print Student[sex] print Student[age] print Student[location] print Student[email]2. 通过标准库 collection.namedtuple In [2]: from collections import namedtuple #通过namedtuple定义一个student类 In [4]: student =namedtuple('student'['name','sex','age','location','email']) #定义一个student对象,并赋值 In [5]: s=student('gil','male','28','zhejiang','woshigezhipeng@sina.com') In [7]: s.name Out[7]: 'gil'
阅读全文
0 0
- Python的一些进阶学习-2017.08.07
- Python的一些进阶学习-2017.08.10
- Python的一些进阶学习-2017.08.14
- Python的一些进阶学习-2017.08.16
- Python的一些进阶学习-2017.08.28
- Python的一些进阶学习-2017.10.17
- JavaScript进阶学习的一些建议
- JavaScript进阶学习的一些建议
- JavaScript进阶学习的一些建议
- 十分钟学习Python的进阶语法
- 十分钟学习Python的进阶语法
- 十分钟学习Python的进阶语法
- Python的学习笔记(二)(进阶)
- 用python写爬虫的一些技巧:进阶篇
- python学习--进阶篇
- python 进阶学习
- Python进阶学习
- Python 学习进阶
- Mybatis源码解析-MapperRegistry注册mapper接口
- TI—CC3200【5】关于TLV320AIC3254的hp和lo输出“沙沙”声的问题
- C# 获取汉语拼音全码及简码
- 数据库导入excel数据
- 新型勒索病毒又爆发!通过邮件传播 赎金0.18比特币
- Python的一些进阶学习-2017.08.07
- 数学建模算法与应用(一)线性规划
- iOS警告:Category is implementing a method which will also be implemented by its primary class
- 剑指offer 重建二叉树-前序遍历和中序遍历重建
- php
- 四种生成和解析XML文档的方法
- 金额小写数字转中文大写
- iOS开发中设置UITableViewCell中的分割线顶格显示
- python数据框基本操作