【Python】9“切片和迭代“

xiaoxiao2021-02-28  118

切片

我们在对list或者tuple的元素进行取值时,一般的方法是这样的:

>>>L = [1,2,3] >>>L[0] >>>L[1] >>>L[2]

或者使用循环来获取

>>>L = [] >>>n = 2 >>>for i in range(n) >>> L.append(L[i]) L

python提供了更加简便的方法能让我们获取这些值,那就是切片(slice)

>>>list = [1,2,3,4,5] >>>#取list集合中的第0个到第3个元素,如果是从0开始取,0可以省略 >>>list[0:3] [1, 2, 3]

也可以倒过来取

>>>list = [1,2,3,4,5] >>>#记住最后一个元素的索引是-1 >>> list[-1:] [5] >>> list[-5:] [1, 2, 3, 4, 5] >>>

也可以按每x个取一个

>>> temp = list(range(10)) >>> temp[:10:2] [0, 2, 4, 6, 8]

字符串也可以看作是一种list,同样可以通过切片的方法来取字符串的字符

>>> str = 'abcdefg' >>> str[0:3] 'abc'

迭代

一般来说,我们用for...in遍历集合的过程,就称为迭代(iteration) 迭代list和tuple

>>> l = [1,2,3,4,5] >>> for i in l: ... print(i) ... 1 2 3 4 5 >>> l = (1,2,3,4,5) >>> for i in l: ... print(i) ... 1 2 3 4 5

迭代dict,可以通过for...in...迭代dict的key

>>> dict = {'name':'lily','age':'21','hight':161} >>> for key in dict: ... print(key) ... name age hight

迭代dict的value,需要使用dict.values()方法

>>> for value in dict.values(): ... print(value) ... lily 21 161

也可以同时迭代key和value,需要使用dict.items()方法

>>> for key,value in dict.items(): ... print(key,value) ... name lily age 21 hight 161

迭代字符串

>>> str = 'abcdefg' >>> for ch in str: ... print(ch) ... a b c d e f g

迭代list集合中的索引-元素对,可以使用enumerate将list变成索引-元素对

>>> for x,y in enumerate([1,2,3,4,5]): ... print(x,':',y) ... 0 : 1 1 : 2 2 : 3 3 : 4 4 : 5

△判断一个对象是否可迭代,可以通过collection模块的lterable类型来判断:

>>> from collections import Iterable >>> isinstance('abc',Iterable) True >>> isinstance('123',Iterable) True >>> isinstance(123,Iterable) False >>>
转载请注明原文地址: https://www.6miu.com/read-64891.html

最新回复(0)