05 切片、迭代、列表生成
来源:互联网 发布:mac 液体唇膏 试色 编辑:程序博客网 时间:2024/05/22 14:31
切片
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> L[0:3] #取前3個元素
>>> L[:3]
>>> L[1:3]
>>> L[:]
>>> L[::2] #第三個參數表示每2個元素取一個元素,也就是隔一個取一個 ['Adam','Bart']
>>> range(1, 101) #創建一個數列[1, 2, 3, ..., 100]
>>> L[-2:] #['Bart', 'Paul']
>>> L[:-2] #['Adam', 'Lisa']
>>> L[-4:-1:2] # ['Adam','Bart']
>>> 'ABCDEFG'[:3] #'ABC'
>>> 'ABCDEFG'[-3:] #'EFG'
>>> 'ABCDEFG'[::2] #'ACEG'
迭代
Python的for循環可以作用在任何可迭代對象上。
迭代操作就是對於一個集合,依次取出集合的每一個元素。
1 有序集合:list tuple str unicode
2 無序集合:set
3 無序key-value對:dict
在Python中,迭代取出的元素的本身,而不是元素的索引。
索引迭代:
使用enumerate()函數
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in enumerate(L)
print index, '-', name
實際上,enumerate()函數把 ['Adam', 'Lisa', 'Bart', 'Paul']變成了 [(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]。
因此,迭代的每一個元素實際上是一個tuple。
for t in enumerate(L)
index = t[0]
name = t[1]
print index, '-', name
zip()函數可以把兩個list變成一個list。
>>> zip([10, 20, 30], ['A', 'B', 'C']) #[(10, 'A'), (20, 'B'), (30, 'C')]
對dict的迭代:
1、直接迭代,每次拿到dict的一個key;
2、調用values()方法,得到dict的values的lsit;itervalues()方法與values()方法的效果完全一樣。
values()方法實際把一個dict轉換成包含value的list;
itervalues()方法在迭代過程中依次從dict中取出value。
後者比前者省內存。
同時對key和value進行迭代:
items()方法和iteritems()方法
for key, value in d.items():
print key, ':', value
列表生成式
>>> range(1, 11) #[1, 2, 3, ..., 10]
>>> [x*x for x in range(1, 11)] #[1, 4, 9, ..., 100]
>>> [x*x for x in range(1, 11) if x%2 == 0]
>>> isinstance(x, str) #判斷x是否爲字符串,字符串的upper()方法可以返回大寫
>>> [m + n for m in 'ABC' for n in '123'] #['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
- 05 切片、迭代、列表生成
- python入门--切片,迭代,列表生成
- python基础IV(切片、迭代、生成列表)
- Python(八)切片、迭代、列表生成式、生成器
- 初学python:切片、迭代、列表生成式、生成器
- python基础之切片、迭代和列表生成式
- Python 2、函数&切片&迭代&列表生成式
- python——切片 迭代 列表生成式 生成器
- Python学习 Day 4 函数 切片 迭代 列表生成式 生成器
- 7.python高级特性:切片,迭代,列表生成式,生成器,迭代器
- Python高级特性:切片;迭代;列表生成式;生成器;迭代器
- python入门笔记(Day3)--切片,迭代(器),列表生成式/器,
- Python笔记3——切片,迭代,列表生成式,生成器
- Python高级特性(切片 迭代 列表生成式 生成器 迭代器)学习笔记
- python切片、迭代、生成器、列表生成式等高级特性学习
- Python入门 第三天(set、函数、切片、迭代、列表生成式)
- Python高级特性(切片,迭代,列表生成式、生成器、迭代器)
- 切片,生成式,生成器,迭代
- 动态设置数据源的方法
- Android
- 响应式布局开发-1
- php 二维数组转一维,其中一个字段值做键,另一个做值
- 二维码解码工具
- 05 切片、迭代、列表生成
- POJ1840:Eqs(Hash)
- 如何从一个list集合当中移除一部分的子集合
- ios IPV6被拒绝的解决方案
- 浅谈JavaScript设计模式——原型模式
- Git速查手册
- 第六周算法分析与设计Ⅰ:Remove Nth Node From End of List
- 数学模板-欧几里德算法&&扩展欧几里德算法
- (转)Android中解析XML