''''''
'''
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之高级特性的更多相关文章

  1. python学习笔记(三)高级特性

    一.切片 list.tuple常常截取某一段元素,截取某一段元素的操作很常用 ,所以python提供了切片功能. L=['a','b','c','d','e','f'] #取索引0,到索引3的元素,不 ...

  2. 【Python学习之五】高级特性4(切片、迭代、列表生成器、生成器、迭代器)

    4.生成器(generator) 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的 ...

  3. 【Python学习之五】高级特性3(切片、迭代、列表生成器、生成器、迭代器)

    3.列表生成器(List Comprehensions) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式.举个例子,要生成list ...

  4. Python学习札记(十七) 高级特性3 列表生成式

    参考:列表生成式 Note 1.List Comprehensions,即列表生成式,是Python中内置的非常强大的list生成式. eg.生成一个列表:[1*1, 2*2, ..., 10*10] ...

  5. 【Python学习之五】高级特性5(切片、迭代、列表生成器、生成器、迭代器)

    5.迭代器 由之前的生成器可知,for循环用于可迭代对象:Iterable.包括集合数据类型: list.tuple.dict.set.str 等,以及两种生成器.判断迭代器,使用 isinstanc ...

  6. 【Python学习之五】高级特性2(切片、迭代、列表生成器、生成器、迭代器)

    2.迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration).在Python中,迭代是通过for ... in来完成的. ...

  7. 【Python学习之五】高级特性1(切片、迭代、列表生成器、生成器、迭代器)

    1.切片 有一个list—>L = [1,2,3,4,5,6,7]或tuple—>T = (1,2,3,4,5,6,7),如果想取得前三个元素,怎么操作? 硬方法,也是低效的方法是:L= ...

  8. Python学习笔记4 高级特性_20170618

    # 切片(获取list / tuple / 字符串 中指定的元素) l = list(range(10)) l[0:3] l[:3] # 0可以省略 l[:] # 全部 l[3:] # 最后的可以省略 ...

  9. Python学习--21天Python基础学习之旅(Day08-Day21)

    Day08: Chapter 11 异常 1.1如果try代码块中代码运行没有问题,则运行时跳过except代码块.(有异常时执行except中的代码,没有异常则跳过except中的代码) try-e ...

随机推荐

  1. Cplex教育版申请

    任何人:直接在公众号"毒书 彼记" ,“资源下载” 板块下载: 如果你的学校没有购买cplex软件没那么,你就不可以下载教育版的cplex软件,如过下载免费板,它的功能会有一些限制 ...

  2. 《Three.js 入门指南》2.4.1- 照相机 - 透视投影demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 掌握使用gitlab ci构建Android包的正确方式

    最近公司在做移动端的项目,自然而然的需要搭建打包的环境.本来计划用Jenkins的,但是发现在gitlab上创建完项目后,提示去配置pipeline,于是决定用gitlab去尝试下,毕竟我觉得Jenk ...

  4. DHCP完整过程详解及Wireshark抓包分析

    DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,简单来说就是主机获取IP地址的过程,属于应用层协议. DHCP采用UDP的68(客户端)和67(服务 ...

  5. 1030 Travel Plan (30分)(dijkstra 具有多种决定因素)

    A traveler's map gives the distances between cities along the highways, together with the cost of ea ...

  6. Spring Taco Cloud——design视图的创建(含thymeleaf模板遇到的一些小问题)

    先来看下综合前两篇内容加上本次视图的成果   可能不是很美观,因为并没有加css样式,我想等整个项目有个差不多的功能实现后再进行页面优化,请谅解 下面我贴上自己定义修改过的Taco的design视图代 ...

  7. (js描述的)数据结构[队列结构,优先级队列](3)

    (js描述的)数据结构[队列结构](3) 一.队列结构的特点: 1.基于数组来实现,的一种受限的线性结构. 2.只允许在表头进行删除操作,在表尾进行插入操作. 3.先进先出(FIFO) 二.队列的一些 ...

  8. DevEco Toolkit使用指南--平行视界

      高效开发和创新业务是开发者一直追求的目标,当接到开发需求时,如果可以找到现成的API调用,能为开发者节省大把时间,将会留有更多的时间进行业务的创新.华为DevEcoToolkit聚合了华为丰富的开 ...

  9. HAproxy 基础配置

    基础配置详解 HAProxy 的配置文件haproxy.cfg由两大部分组成,分别是global和proxies部分 global:全局配置段 进程及安全配置相关的参数性能调整相关参数Debug参数 ...

  10. MathJax的基本使用

    MathJax是一个开放源代码的JavaScript显示引擎,适用于所有现代浏览器中的LaTeX.MathML和AsciMath表示法. MathJax官网为 https://www.mathjax. ...