Python3 学习笔记15_高级特性(切片+迭代)_20180306
2018-03-06 11:12
281 查看
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 学习网站:www.liaoxuefeng.com #**************************************************** # Python3 高级特性-切片+迭代 * #**************************************************** print ("--------------------分割线------------------") #============ # 切片 #============ # 取一个list或tuple的部分元素 list_a = ['a','b','c','d','e','f','g'] # 取前3个元素,笨办法: print( list_a[0], list_a[1], list_a[2] ) # a b c # 取前N个元素,笨办法: n = 5 for i in range(n): print( list_a[i],end=' ' ) # a b c d e print() # 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,python提供 # 了切片(slice)操作符,能大大简化这种操作。 # 取前3个元素 print( list_a[0:3] ) # ['a', 'b', 'c'] # 如果第一个元素索引是0,还可以省略,取前3个元素 print( list_a[:3] ) # ['a', 'b', 'c'] # 取倒数第一个元素的索引是-1 print( list_a[-1] ) # g # 取倒数两个元素 print( list_a[-2:] ) # ['f', 'g'] # 取所有元素 print( list_a[:] ) # ['a', 'b', 'c', 'd', 'e', 'f', 'g'] # 前6个元素,每两个取一个 print( list_a[:6:2] ) # ['a', 'c', 'e'] # 所有元素,每三个取一个 print( list_a[::3] ) # ['a', 'd', 'g'] ''' tuple也是一种list,唯一区别是tuple不可变,tuple也可以用切片操作,操作 结果仍是tuple, 字符换也可以用切片,操作结果仍是字符串 ''' print ("--------------------分割线------------------") #============ # 迭代 #============ ''' 给定一个list或tuple,可以通过for循环来遍历这个list或tuple,这种遍历 称为迭代(iteration),python中迭代是通过for...in来完成的。 for...in循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。 只要是可迭代对象,无论有无下标,都可以迭代,比如dict。 ''' dict_a = {'name':'bugliu','gender':'M','age':30} # dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序可能 # 不一样 # 默认情况下, dict迭代的key for key in dict_a: print( key, end=' ' ) # name gender age print() # 按dict中的value进行迭代 for value in dict_a.values(): print( value, end=' ' ) # bugliu M 30 print() # 同时按key和value进行迭代 for key,value in dict_a.items(): print(key,value, end=' ') # name bugliu gender M age 30 print() # 字符串迭代 for ch in 'bugliu': print( ch, end=' ' ) # b u g l i u print() print ("--------------------分割线------------------") # 判断一个对象是否为可迭代对象,通过collections模块的Iterable类型判断 from collections import Iterable # 判断字符串是否可迭代 print( isinstance('abs', Iterable) ) # True # 判断list是否可迭代 print( isinstance([1,2,3], Iterable) ) # True # 判断tuple是否可迭代 print( isinstance((1,2,3), Iterable) ) # True # 判断dict是否可迭代 print( isinstance({'age':30}, Iterable) ) # True # 判断整数是否可迭代 print( isinstance(123, Iterable) ) # False print ("--------------------分割线------------------") # 对list实现下标循环,python内置的enumerate函数可以把一个list变成 # 索引-元素对,这样就可以在for循环中同时迭代索引和元素本身 for i, value in enumerate(['a','b','c']): print( i, value, end=' ' ) # 0 a 1 b 2 c print()
相关文章推荐
- Python高级特性(切片 迭代 列表生成式 生成器 迭代器)学习笔记
- python2.7学习笔记(6) ——高级特性:切片、迭代、列表生成式、生成器
- Python自学笔记之高级特性1——切片和迭代
- python切片、迭代、生成器、列表生成式等高级特性学习
- python学习笔记(5)-高级特性(一)-切片
- 【Python学习笔记】python高级特性:切片
- python学习笔记-高级特性-切片(Slice)
- 【Python学习笔记】python高级特性:迭代
- python学习笔记(6)-高级特性(二)-迭代
- Python学习笔记(3)--高级特性
- 【Python学习笔记】python高级特性:列表生成式
- python的高级特性:切片,迭代,列表生成式,生成器,迭代器
- Python高级特性——学习笔记
- Python3 学习笔记16_高级特性(列表生成式)_20180307
- 廖雪峰python学习笔记4:高级特性
- 【Python学习笔记】python高级特性:生成器
- Python学习笔记3--高级特性
- 初学Python的学习笔记3----递归函数、切片、迭代和列表生成式
- python学习笔记之函数及其高级特性
- Python3 学习笔记18_高级特性(迭代器)_20180308