''''''
'''
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. logstash用jdbc插件将数据库内容导入elasticsearch时间字段相差5小时

    logstash将mysql的数据导入elasticsearch之后发现时间字段的相差5个小时 解决办法: 在数据库连接配置后面加上?serverTimezone=UCT这个就OK了 logstash ...

  2. Windows程序卡顿、无响应问题定位

    当windows程序出现异常.界面卡顿.无响应情况时,在有工程和源码的情况下,程序员通常是打开IDE,在DEBUG模式下进行调试.但如果是一个RELEASE程序,且无调试环境,该如何来定位呢. 这里介 ...

  3. 爬虫简介和requests模块

    目录 爬虫介绍 requests模块 requests模块 1.requests模块的基本使用 2.get 请求携带参数,调用params参数,其本质上还是调用urlencode 3.携带header ...

  4. 你还不知道Vue的生命周期吗?带你从Vue源码了解Vue2.x的生命周期(初始化阶段)

    作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...

  5. A - A FZU - 2205

    A - A FZU - 2205 一个国家有 N 个城市,国王不希望国家中存在三个城市之间能够互相直接到达,但道路要求尽可能的多,道路是双向边,且无重边无自环. 国王希望你最好能解决这个问题.求最多存 ...

  6. 为何关键字static在面试中频频被问?

    关键字static的神奇妙用在今天的学习中,我了解到关键字static的作用,下面我来给大家分享一下.①static 修饰局部变量只改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束生 ...

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

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

  8. 浅谈Python导入外部文件

    import 和 from ... import * 有什么区别? 例如我写了个模块hello.py def print_func(args): print("Hello " + ...

  9. Linux基础:Day02

    Linux文件管理 创建 touch vim/vi echo重定向 touch 管理:atime mtime ctime touch 文件名  //如果文件不存在就创建文件 touch -a -t [ ...

  10. Java时间戳获取

    Java时间戳获取方式: 1:New Date().getTime(); 2: System.currentTimeMillis();区别: New Date().getTime()的底层其实是Sys ...