python学习21之高级特性
''''''
'''
1.切片
(1)谁可以进行切片操作?——列表,元组,字符串
(2)切片有以下几种操作
'''
#[a:b]:取从下标为a的元素开始,到下标为b-1的元素结束
L=['aa','bb','cc','dd','ee','ff','gg']
l1=L[0:3]#取出来的是:下标为0,1,2的元素
print(l1)
#['aa', 'bb', 'cc'] #[:c]:表示从下标0开始取,取到c-1;[d:]:表示从d开始取,取到最后;如果d为负数,表示倒数第d个元素
l2=L[:3]
print(l2)
#['aa', 'bb', 'cc']
l3=L[-2:]
print(l3)
#['ff', 'gg']
l4=L[1:]
print(l4)
#['bb', 'cc', 'dd', 'ee', 'ff', 'gg'] #[a:b:c]:从a开始取,取到b-1,每隔c-1个数取一次,称为步长值为c
l5=L[0::2]
print(l5)
#['aa', 'cc', 'ee', 'gg']
'''
2.迭代
(1)谁可以进行迭代操作?——可以迭代的对象都可以进行迭代操作:列表,元组,字符串,字典,集合等
(2)迭代有以下几种操作
'''
#常规操作:for in 循环或者while循环
for n in L:
print(n) i=0
while i < len(L):
print(L[i])
i+=1 #列表的迭代:用for in D循环打印出来的是字典的键
D={1:'xiaowang',2:'xiaoli',3:'xiaozhang',4:'xiaoliu'}
for k in D:
print(k)
'''
1
2
3
4
'''
#如果想打印出字典的值,用D.values()函数
for v in D.values():
print(v)
'''
xiaowang
xiaoli
xiaozhang
xiaoliu
'''
#如果想成对打印,则用D.items()
for d in D.items():
print(d)
print(type(d))
'''
(1, 'xiaowang')
(2, 'xiaoli')
(3, 'xiaozhang')
(4, 'xiaoliu')
<class 'tuple'>
'''
#还可以这样
for k,v in D.items():
print(k,v)
'''
1 xiaowang
2 xiaoli
3 xiaozhang
4 xiaoliu
'''
#在python中,for循环里出现两个变量十分常见
for a,b in [(1,1),(2,2),(3,3)]:
print(a,b)
'''
1 1
2 2
3 3
'''
'''
3.列表生成式
通过在列表里写一行表达式及表达式中变量需要满足的条件,来完成生成列表的操作,取代循环,简化代码
'''
l6=[x * x for x in range(1, 11)]
print(l6)
#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
'''
写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用。
for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:
'''
l7=[x * x for x in range(1, 11) if x % 2 == 0]
print(l7) #还可以使用两层循环,可以生成全排列:
l8=[m + n for m in 'ABC' for n in 'XYZ']
print(l8)
# ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ'] #把一个list中所有的字符串变成小写:
L = ['Hello', 'World', 'IBM', 'Apple']
[s.lower() for s in L]
'''
如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错。
使用内建的isinstance函数可以判断一个变量是不是字符串。请修改列表生成式,通过添加if语句保证列表生成式能正确地执行:
'''
L1 = ['Hello', 'World', 18, 'Apple', None]
L2=[s.lower() for s in L1 if isinstance(s,str) ]
python学习21之高级特性的更多相关文章
- python学习笔记(三)高级特性
一.切片 list.tuple常常截取某一段元素,截取某一段元素的操作很常用 ,所以python提供了切片功能. L=['a','b','c','d','e','f'] #取索引0,到索引3的元素,不 ...
- 【Python学习之五】高级特性4(切片、迭代、列表生成器、生成器、迭代器)
4.生成器(generator) 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的 ...
- 【Python学习之五】高级特性3(切片、迭代、列表生成器、生成器、迭代器)
3.列表生成器(List Comprehensions) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式.举个例子,要生成list ...
- Python学习札记(十七) 高级特性3 列表生成式
参考:列表生成式 Note 1.List Comprehensions,即列表生成式,是Python中内置的非常强大的list生成式. eg.生成一个列表:[1*1, 2*2, ..., 10*10] ...
- 【Python学习之五】高级特性5(切片、迭代、列表生成器、生成器、迭代器)
5.迭代器 由之前的生成器可知,for循环用于可迭代对象:Iterable.包括集合数据类型: list.tuple.dict.set.str 等,以及两种生成器.判断迭代器,使用 isinstanc ...
- 【Python学习之五】高级特性2(切片、迭代、列表生成器、生成器、迭代器)
2.迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration).在Python中,迭代是通过for ... in来完成的. ...
- 【Python学习之五】高级特性1(切片、迭代、列表生成器、生成器、迭代器)
1.切片 有一个list—>L = [1,2,3,4,5,6,7]或tuple—>T = (1,2,3,4,5,6,7),如果想取得前三个元素,怎么操作? 硬方法,也是低效的方法是:L= ...
- Python学习笔记4 高级特性_20170618
# 切片(获取list / tuple / 字符串 中指定的元素) l = list(range(10)) l[0:3] l[:3] # 0可以省略 l[:] # 全部 l[3:] # 最后的可以省略 ...
- Python学习--21天Python基础学习之旅(Day08-Day21)
Day08: Chapter 11 异常 1.1如果try代码块中代码运行没有问题,则运行时跳过except代码块.(有异常时执行except中的代码,没有异常则跳过except中的代码) try-e ...
随机推荐
- 前端之jQuery基础篇02-事件
什么是事件: 在元素上移动鼠标. 选取单选按钮 点击元素 常见的DOM事件: 鼠标事件:click() 当鼠标单击发生click事件 : <!DOCTYPE html> <html& ...
- java web利用mvc结构实现简单聊天室功能
简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是: 1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...
- 《Three.js 入门指南》3.0 - 代码构建的最基本结构。
3.0 代码构建的最基本结构 说明: 我们必需首先知道,Three.js 的一些入门级概念: 我们需要知道,OpenGL 是一套三维实现的标准,为什么说是标准,因为它是跨平台,跨语言的.甚至CAD以及 ...
- adb工作常用命令
adb devices 查看手机名 adb shell链接手机 dumpsys window windows |grep -i current 打开软件,查看软件入口,和包名,白色为包名,红框为包入口 ...
- redis 安装and对外开放端口
第一步: $ cd /usr/local/src $ wget http://download.redis.io/releases/redis-5.0.4.tar.gz $ tar xzf redis ...
- C++值多态:传统多态与类型擦除之间
引言 我有一个显示屏模块: 模块上有一个128*64的单色显示屏,一个单片机(B)控制它显示的内容.单片机的I²C总线通过四边上的排针排母连接到其他单片机(A)上,A给B发送指令,B绘图. B可以向屏 ...
- 30.2 案例:ArrayList本身数据可以重复,写出去重的方法
package day30_HashSet; /* * ArrayList特点(实现List接口) 有序.可以重复.可以使用索引 *使用ArrayList实现数据去重 * */ import java ...
- c++动态数组的优点,创建和删除
动态数组可以有两种使用方式: 1:不能预先知道数组的大小使用动态数组 传统数组(静态数组)是需要在程序运行前,就指定大小,比如说 int i = 10; int a[i]; 这种就是不合法的. 因为函 ...
- http的请求头都有那些信息
每个HTTP请求和响应都会带有相应的头部信息.默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 ...
- MySQL exists的用法
有一个查询如下: 1 SELECT c.CustomerId, CompanyName 2 FROM Customers c 3 WHERE EXISTS( 4 SELECT OrderID FROM ...