切片与迭代
以上两个操作,针对列表以及元组
ppt看完7,看到8了
切片(slice)
取list或tuple中部分元素
未使用切片示例(取前三个元素)
>>>L=['a','d','f','3','4']
>>>r=[]
>>>n=3
>>>for i in range(n):
r.append(L[i])
>>>r
['a','d','f']
切片举例
>>>L[0:3]
['a','d','f']
>>>L[:3] 第一个索引为0可省略
>>>L[1:3] 取第2、3个两个元素
>>>L[-2:-1] 取倒数第二个元素
>>>L[-2:] 取最后两个元素
>>>L[-1:] 取最后一个元素
>>>L[1:1] 取一个[]
最后一个元素索引为 -1
左边的索引的元素一定去得到,
右边的索引元素一定取不到
E.g
>>>L = list(range(n))
>>>L[:10:2] 前十个数每两个取一个
>>>L[::5] 所有数每五个取一个
>>>L[::] 复制一个list ?
从第一个元素开始取
>>>L[::-1] 生成倒序列表!
字符串、元组 同理,操作完,类型不变。
迭代(iteration)
主要使用 for 循环
E.g
dict:
>>>q={'a':1,'b':2,'c',3}
>>>for key in q: 迭代key
print(key)
>>>for value in q.values() 迭代key的值
>>>for k,v in q.items() 两者都
E.g:
>>>for x in q.items() 会返回一个元组(1对2)
str:
>>>for i in 'ASDFGHJKL':
print(i)
判断可迭代对象
使用 collections 模块的 Iterable 类型
>>>from collections import Iterable
>>>isinstance('abc',Iterable) 判断str
>>>True
>>>isinstance([1,2,3],Iterable) 判断list
>>>isinstance(123,Iterable) 判断int
实现下标循环(enumerate函数)
>>>for i,k in enumerate(['a','b',c']):
print(i,k)
一般情况,引用多变量
>>>for x,y in [(1,2),(3,4),(5,6)]:
print(x,y)