Python学习之高级特性
切片
在Python基础篇里,我们知道Python的可序列对象可以通过索引号(下标)来引用对象元素,索引号可以由0开始从左向右依次获取,可以从-1开始由右向左获取。这种方法可以帮助我们依次获取我们想要的元素。而切片可以帮助我们获取被切片元素的副本。
可序列对象切片时所需要的参数[start_index:stop_index:step]
start_index:切片的起始位置
stop_index:切片的结束为止(不包括)
step:步长,可选参数。默认值是1,但不能为0.表示依次递增。
操作 |
解释 | 输出 |
print(testList) |
打印测试列表 | [1, 2, 3, 4, 5, 6, 7, 8, 9] |
print(testList[:]) |
输出列表中所有元素 | [1, 2, 3, 4, 5, 6, 7, 8, 9] |
print(testList[1:7:2]) |
从第二个开始,到第8个元素(不包含),每次间隔2个元素 | [2,4,6] |
print(testList[:5]) |
从第一个开始,到第6个(不包含),默认间隔1个元素 | [1,2,3,4,5] |
| print(testList[-5:]) | 从右往左第五个开始至最后一个元素结束,默认间隔1个元素 | [5,6,7,8,9] |
| print(testList[::2]) | 从第一个开始,到最后一个结束,每次间隔2个元素 | [1,3,5,7,9] |
| print(testList[::-1]) | 从第一个开始,至最后一个结束,倒序间隔一个元素 | [9, 8, 7, 6, 5, 4, 3, 2, 1] |
testList[1:2]=['a'] print(testList) |
从第2个元素开始,第三个元素结束(不包含),插入并替换该区间元素 | [1, 'a', 3, 4, 5, 6, 7, 8, 9] |
del testList[1] |
删除第二个元素,请注意,这时只是从原来对象中的副本中删除后重新获取一个新的引用对象。 | [1, 3, 4, 5, 6, 7, 8, 9] |
del testList[1::2] |
从第二个元素开始删除对象元素,至最后一个元素结束,每次间隔2个 | [1, 3, 5, 7, 9] |
迭代
在开发语言中,遍历获取可序列对象我们称之为迭代。Python中,不仅可以像其他语言一样迭代可序列对象还可以迭代任意可序列化对象。例如 字典,字符串,元祖
案例 |
解释 | 输出 |
testList=[1,2,3] |
迭代列表 |
1 2 3 |
testStr='hello' |
迭代字符串 |
h e l l o |
testDic={'name':'zhangsan','age':18}
|
循环字典,默认输出key |
name age |
判断一个元素是否可以被迭代
在Python中可以通过collections模块的Iterable类型判断元素是否可以被迭代,当元素允许被迭代时返回True,反之返回False
from collections import Iterable
| 案例 | 解释 | 输出 |
| a=isinstance('abc',Iterable) print(a) |
判断字符串(python中'a'也将作为字符串"a")使用 | True |
| testList=[1,2,3] a=isinstance(testList,Iterable) print(a) |
判断列表 | True |
| testDict={'name':'zhangsan','age':18} a=isinstance(testDict,Iterable) print(a) |
判断字典 | True |
| testTuple=(1,2,3) a=isinstance(testTuple,Iterable) print(a) |
判断元祖 | True |
| testInt=123 a=isinstance(testInt,Iterable) print(a) |
判断数值 | False |
列表生成式
Python中列表生成式不仅可以迭代输出对象元素,还可以简化我们的代码。
|
for循环 |
列表生成式 | |
l=[] |
n=[x*x for x in range(1,11)] |
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] |
列表生成式与if条件一起使用
for 循环 |
列表生成式 | 输出 |
l=[1,2,4,5,6,7,8,9] |
l=[1,2,4,5,6,7,8,9] |
[2,4,6,8] |
列表生成式与字典一起使用
| for循环 | 列表生成式 | 输出 |
testDict={'name':'zhangsan','age':18}
|
testDict={'name':'zhangsan','age':18}
|
name=:zhangsan |
Python学习之高级特性的更多相关文章
- python学习之高级特性:
切片:对列表.元组.字符串.字典取中间的一部分,在C中一般是通过for循环拷贝/memcpy/strcat等操作.而python提供了更方便的切片操作符[m:n]:前闭后开,如果从0取m可以省略:如果 ...
- Python面向对象编程高级特性
***这里还是根据网上资料,主要是廖雪峰老师的教程学习的笔记,主要介绍python面向对象的高级特性,笔记不全,只是记录自己觉得容易出错的地方*** 1.python作为一种动态语言,他的动态绑定机制 ...
- Python:笔记(4)——高级特性
Python:笔记(4)——高级特性 切片 取一个list或tuple的部分元素是非常常见的操作.Python提供了切片操作符,来完成部分元素的选取 除了上例简单的下标范围取元素外,Python还支持 ...
- Python的一些高级特性
内容基本上来自于廖雪峰老师的blog相当于自己手打了一遍,加强加强理解吧. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493 ...
- python学习2—python3特性与各种运算符
python学习2—python3特性与各种运算符 python3与python2相比具有的新特性 在python2中可以使用__future__模块调用python3的特性 print()函数必须带 ...
- Python的一些高级特性以及反序列化漏洞
0x01 简述 文章主要记录一下python高级特性以及安全相关的问题 python作为脚本语言,其作为高级语言是由c语言开发的,关于python的编译和链接可以看向这里https://github. ...
- php面向对象编程学习之高级特性
前几天写了一篇关于php面向对象基础知识的博客,这两天看了php面向对象的高级特性,写出来记录一下吧,方便以后拿出来复习. 面向对象除了最基本的定义类之外,最主要就是因为面向的一些高级特性,运用这些高 ...
- Python学习之高级数组(一)
1.Python基础学习之高级数组(一) 1.1视图:就是与较大数组共享相同数据的较小数组.Numpy包提供数据视图的概念是为了精确地控制内存的使用方式. 数组视图.切片视图.转置和重塑视图等 数组 ...
- python:函数的高级特性
很多语言中,都允许把函数本身做为参数,传递给其它参数:即所谓的高阶函数.python中也有类似特性: 一.map/reduce.filter.sorted hadoop里的map-reduce思想在p ...
随机推荐
- centos yum 安装jdk后配置JAVA_HOME
centos6.4 yum 安装jdk和JAVA_HOME的设置 2014-06-17 16:13 1176人阅读 评论(0) 收藏 举报 分类: linux(3) 版权声明:本文为博主原创文章, ...
- 关于jqeury中attr()和prop()方法
在平时工作中老会被一样的问题困住,浪费时间,这里做一个简要笔记. 在使用jquery给元素设置属性的时候,如果是一般的div,p等正常元素设置属性的话,使用attr()足以,但是在给拥有checked ...
- mysql-5.7安装配置指导
mysql 安装 yum 安装mysql 源码编译安装mysql 通过yum安装 下载yum仓库配置安装包 MySQL Yum Repository http://dev.mysql.com/down ...
- dell Nx000系列交换机
dell n2048(P) dell n3048(P) dell n4064(F) P: PoE+ F: SFP+ Model GbE 10GbE(SFP+) 40GbE(QSFP+) Layer d ...
- Spring Cloud入门程序——注册服务提供者
1.创建Spring Starter project 2.引入依赖 点击finish 3.创建启动类 package com.hello; import org.springframework.boo ...
- 关于nutz跨服务器上传文件
关于nutz跨服务器上传文件 发布于 578天前 作者 yong9664 770 次浏览 复制 上一个帖子 下一个帖子 标签: 无 是这样的,项目在一台服务器,文件要存储到另外一台服务器 ...
- 【转】在程序中设置android:gravity 和 android:layout_Gravity属性
在进行UI布局的时候,可能经常会用到 android:gravity 和 android:layout_Gravity 这两个属性. 关于这两个属性的区别,网上已经有很多人进行了说明,这边再简单说一 ...
- 离散外微积分(DEC:Discrete Exterior Calculus)基础
原文链接 “若人们不相信数学简单,只因为他们未意识到生命之复杂.”——Johnvon Neumann DEC主要讨论离散情况下的外积分,它在计算机领域有重要用途.我们知道,使用计算机来处理几何图形的时 ...
- 自己写js库,怎么支持AMD
最近我打算把之前做项目写的一些工具集成到一个js库中,但是库既要在普通环境正常运行,又要在AMD环境下不暴露全局变量.一时间挺头疼的.随即我参考了一些现在流行的库的源码.学着写了一下,感觉还不错. 既 ...
- git移除某文件夹的版本控制
thinkphp框架,Apps/Runtime下目录移出版本控制. git rm -r -n --cached */Runtime/\* //-n:加上这个参数,执行命令时,是不会删除任何 ...