Python学习之旅(十二)
Python基础知识(11):高级特性
一、分片(切片)
通过索引来获取一定范围内的元素
#字符串
s="Alice"
s[0:4:2]
结果:
'Ai' #列表
l=[1,2,3,4,5,6]
l[0:2]
结果:
[1, 2] #元组
t=(1,2,3,"a","b","c")
t[:]
结果:
(1, 2, 3, 'a', 'b', 'c')
二、迭代
给定一个元组或列表,通过for循环遍历,这种遍历称为迭代
def test():
l=["A","l","i","c","e"]
for i in l:
print(i) test()
结果:
A
l
i
c
e
通过collections模块的Iterator判断一个对象是否是可迭代对象
from collections import Iterable
isinstance("more", Iterable)
结果:True
enumerate函数可以把一个list变成索引-元素对,可以在for循环中同时迭代索引和元素本身:
for i in enumerate(["more","money","never","God"]):
print(i) 结果:
(0, 'more')
(1, 'money')
(2, 'never')
(3, 'God')
三、列表生成式
可以用list(range(1, 11))生成列表 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
列表生成式用一行语句代替循环生成列表
l=[]
for i in range(1,10):
l.append(i*i) 结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81] [x*x for x in range(1,10)]
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
四、生成器
生成器generator:列表中的元素可以在循环中按照某种算法推算出来机制
创建一个generator的方法:
1、把一个列表生成式的[]改成(),就创建了一个generator:
L = [x * x for x in range(9)]
L
结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64]
五、迭代器
凡是可作用于for循环的对象都是Iterable类型
凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列
集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象
资料来源:
廖雪峰官方网:https://www.liaoxuefeng.com
Python学习之旅(十二)的更多相关文章
- Python学习之旅(二十九)
Python基础知识(28):常用第三方模块 一.Pillow PIL(Python Imaging Library):提供了强大的图像操作功能,可以通过简单的代码完成复杂的图像处理,是Python平 ...
- Python学习之旅(二十四)
Python基础知识(23):进程和线程(Ⅱ) 一.threadlocal 在多线程环境下,每个线程都有自己的数据 一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响 ...
- Python学习之旅(二十二)
Python基础知识(21):IO编程 一.文件读写 读写文件就是请求操作系统打开一个文件对象(文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象 ...
- Python学习之旅(二十八)
Python基础知识(27):常用内建模块(Ⅲ) 1.urlblib urllib提供了一系列用于操作URL的功能 url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示, ...
- Python学习之旅(二十六)
Python基础知识(25):常用内建模块 1.datetime:处理日期和时间 (1)获取当前日期和时间 from datetime import datetime now = datetime.n ...
- Python学习之旅(二十五)
Python基础知识(24):正则表达式 正则表达式:检查一个字符串是否与某个模式匹配 \d :匹配数字 \w :匹配字母或数字 . :匹配任意字符 {n} :匹配n个字符 {m,n} :匹配m到n个 ...
- Python学习之旅(二十)
Python基础知识(19):面向对象高级编程(Ⅱ) 定制类 形如“__xx__”的变量或函数在Python中是有特殊用途的 1.__str__ 让打印出来的结果更好看 __str__:面向用户:__ ...
- Python学习【第十二篇】模块(2)
序列化 1.什么是python序列化? 把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling 序列化就是将python的数据类型转换成字符串 反序列化就是将字符串转换成 ...
- Python学习(四十二)—— Djago-model进阶
一.QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. Entry.objects.all()[:5] # (LIMI ...
- Python学习(三十二)—— Django之视图系统
转载自:http://www.cnblogs.com/liwenzhou/articles/8305104.html Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Pyth ...
随机推荐
- Java程序猿怎样高速理解Kubernetes
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/82892167 https: ...
- Delphi及C++Builder经典图书一览表(持续更新中2018.01.02)
序号 书名 原版书名 作者 译者 出版社 页数 年代 定价 备注 1 C++Builder 5程序设计大全 C++Builder 5 Developer's Guide Jarrod Hollingw ...
- angularjs $$phase
https://segmentfault.com/q/1010000000738004/a-1020000000738812 $$phase 是 angluar 内部使用的状态标志位,用于标识当前是否 ...
- Substr与mb_substr区别
<?php $str = substr('helloword',3,4);//从下标3开始截取截取4个字符 $str = substr('helloword',3);//从截取掉前三个字符 ...
- 每天一个linux命令(17):whereis
1.命令简介 whereis (whereis) 命令用来定位指令的二进制程序.源代码文件和man手册页等相关文件的路径. whereis命令只能用于程序名的搜索,而且 ...
- Machine Learning第十一周笔记:photo OCR
博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完毕了Cousera上Machine Learning的最后一周课程.这周介绍了 ...
- Spark性能优化指南——基础篇
本文转自:http://tech.meituan.com/spark-tuning-basic.html 感谢原作者 前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一 ...
- Spark RDD、DataFrame原理及操作详解
RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD内部可以 ...
- Pycharm 在Windows下出现闪退问题(即是在运行一段时间后,自己就退出崩掉了)的解决方法
Pycharm 在Windows下出现闪退问题(即是在运行一段时间后,自己就退出崩掉了)的解决方法 最近自己下载了最新版本的Pycharm,运行程序过程中发现,在运行一段时间后(比如10几分钟),Py ...
- pip 安装出现超时问题的解决
pip 安装出现超时问题的解决 我们在用默认的pip源进行安装python库时,会出现超时问题下载不了,如下图显示所示: 那么我们应该如何解决呢? 方法: 在自己电脑的 C:\Users\yanji ...