切片和迭代

Reads: 697 Edit

1 切片

对于list和tuple等数据类型,如果想单独读取某个值,可以通过引用方式。但有些时候我们想按照一定次序同时读取多个数据,这时就可以使用切片功能。

>>> list1=[1,2,3,4,5,6,7,8,9,10]

## 读取前5个数据和后5个数据
>>> list1[:5]
[1, 2, 3, 4, 5]
>>> list1[0:5]						# [0:5]和[:5]等价,注意索引是从0开始,取头不取尾。
[1, 2, 3, 4, 5]
>>> list1[-5:]						# 读取后5个数据,倒数第一个数的索引是-1,第二数的索引是-2,...。
[6, 7, 8, 9, 10]
>>> list1[-5:-1]					# 由于取头不取尾,所以读取的是倒数5至倒数2的数据。
[6, 7, 8, 9]

## 读取中间部分的数据
>>> list1[1:5]						# 读取第2个至第5个数据
[2, 3, 4, 5]
>>> list1[1:-5]						# 读取第2个至倒数第5个数据
[2, 3, 4, 5]
list1[-9:-5]						# 读取倒数第9个至倒数第5个数据
[2, 3, 4, 5]

## 设置读取数据的间隔
>>> list1[0:10:2]					# 读取第1个至第10个,间隔为2的数据
[1, 3, 5, 7, 9]
>>> list1[0:10:3]					# 读取第1个至第10个,间隔为3的数据
[1, 4, 7, 10]

## 逆向读取数据
>>> list1[-8:-2]					# 读取倒数第8个至倒数第2个数据,注意是正向读取
[3, 4, 5, 6, 7, 8]
>>> list1[-3:-9:-1]					# 读取倒数第3个至倒数第9个数据,注意是逆向读取
[8, 7, 6, 5, 4, 3]

2 迭代

对于字典类型,只是根据键来找到对应的值,但是如果我们不知道字典中有哪些键,也就无法读取其中的数据了。因而对于字典数据类型,可以采用迭代的方式,依次读取其中的数据。

>>> dict1 = {'姓名': '张三', '年龄': 29, '性别': '男'}
>>> for k in dict1:
...     print(k)				# 依次输出dict1中的键 
... 
姓名
年龄
性别

>>> for k in dict1:
...     print(dict1[k])			# 依次输出dict1中的值 
... 
张三
29
男

当然,迭代也可以用于列表等非字典数据类型。

>>> list1=[1,2,3,4,5,6,7,8,9,10]
>>> for v in list1:             
...     print(v)             
... 
1
2
3
4
5
6
7
8
9
10

Comments

Make a comment