16序列
一、列表、元组、字符串共同点
我们根据列表、元祖和字符串的共同特点,把它们三统称为什么?
序列
1)都可以通过索引得到每一个元素
2)默认索引值总是从0开始(当然灵活的Python还支持负数索引)
3)可以通过分片的方法得到一个范围内的元素的集合
4)有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)
二、转换为列表、元组、字符串
请问分别使用什么BIF,可以把一个可迭代对象转换为列表、元祖和字符串?
list(),tuple(),str()
list([iterable]) 把可迭代对象转换为列表
tuple([iterable]) 把可迭代对象转换为元祖
str(obj) 把对象转换为字符串
例如:
1. >>> temp = 'I love FishC.com!'
2. >>> list(temp)
3. ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'F', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm', '!']
三、迭代
你还能复述出“迭代”的概念吗?
所谓迭代,是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
四、序列的BIF
1、len()
2、max() min() 需要保证待求的数据类型统一
例如: max('I love FishC.com') 都是字符串
会返回:‘v’,因为字符串在计算机中是以ASCII码的形式存储(ASCII对照表:http://bbs.fishc.com/thread-41199-1-1.html),参数中ASCII码值最大的是’v’对应的118。
3、sum() 待求量必须为整型浮点型,不能为字符串等
4、sorted() 需要保证待求的数据类型统一
5、reversed()
例如:
>>> b = ['a','c','b']
>>> reversed(b)
<list_reverseiterator object at 0x00000269D9866EB8> #不是报错
>>> tuple(reversed(b))
('b', 'c', 'a')
>>> list(reversed(b))
['b', 'c', 'a']
6、enumerate() 返回位置索引和元素构成的元组
例如:
>>> b = ['a','c','b']
>>> enumerate(b)
<enumerate object at 0x00000269D98873F0>
>>> list(enumerate(b))
[(0, 'a'), (1, 'c'), (2, 'b')]
>>> tuple(enumerate(b))
((0, 'a'), (1, 'c'), (2, 'b'))
7、zip()
例如:
>>> a = [1,2,3,4,5,6]
>>> b = [7,8,9,0,1]
>>> zip(a,b)
<zip object at 0x00000269D988A488>
>>> list(zip(a,b))
[(1, 7