1.列表、元组、字符串的共同点:
(1)都可以通过索引得到每一个元素
(2)默认索引值都是从0开始
(3)可以通过分片的方式得到一个范围内的元素的集合
(4)有很多共同的操作符(*:重复操作符;+:拼接操作符;in,not in:成员操作符)
列表、元组、字符串统称为序列。
2.序列常见BIF
list([iterable]) | 把一个可迭代对象转换为列表,返回类型为列表类型 |
tuple([iterable]) | 把一个可迭代对象转换为元组,返回类型为元组类型 |
str(obj) | 把obj对象转换为字符串,返回类型为字符串类型 |
len(sub) | 求序列的长度,返回一个数字 |
max(iterable) | 返回集合序列中的最大值(集合中的元素类型必须相同) |
min(iterable) | 返回集合序列中的最小值(集合中的元素类型必须相同) |
sum(iterable[,start=0]) | 返回序列iterable和可选参数start的总和 |
sorted(iterable) | 返回一个排序的列表,相当于list.sort() |
reversed(iterable) | 逆置,返回一个迭代器对象 |
enumerate(iterable) | 枚举,返回一个迭代器对象 |
zip(iterable1,iterable2) | 压缩,返回一个迭代器对象 |
>>> # list([iterable])
>>> a=list()
>>> a
[]
>>> a='hello'
>>> list(a)
['h', 'e', 'l', 'l', 'o']
>>> b=(1,2,3)
>>> list(b)
[1, 2, 3]
>>> # tuple([iterabe])
>>> a=[1,2,3,4,5]
>>> tuple(a)
(1, 2, 3, 4, 5)
>>> #str(obj)
>>> str()
''
>>> str(5)
'5'
>>> # len(sub)
>>> a='123'
>>> len(a)
3
>>> c=[2,1,'2']
>>> len(c)
3
>>> # max(iterable)
>>> a='12345'
>>> max(a)
'5'
>>> b=['1','2','b','a']
>>> max(b)
'b'
>>> # min(iterable)
>>> c=('a','g','y')
>>> min(c)
'a'
>>> # sum(iterable[,start])
>>> a=1,2,3,4,5
>>> sum(a)
15
>>> sum(a,5)
20
>>> # sorted(iterable)
>>> a=(2,5,1,0,6,9,7)
>>> sorted(a)
[0, 1, 2, 5, 6, 7, 9]
>>> # reversed(iterable)
>>> b='abcdefg'
>>> reversed(b)
<reversed object at 0x000002A614ACD7B8>
>>> list(reversed(b))
['g', 'f', 'e', 'd', 'c', 'b', 'a']
>>> # enumerate(iterable)
>>> a=('a','b','c','d')
>>> list(enumerate(a))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
>>> # zip()
>>> a='abcdefg'
>>> b='678'
>>> zip(a,b)
<zip object at 0x000002A614B11308>
>>> list(zip(a,b))
[('a', '6'), ('b', '7'), ('c', '8')]
注:迭代:所谓迭代,是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被成为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
练习:sum()这个BIF有个缺陷,就是如果参数里有字符串类型的话就会报错,请重新写出一个新的实现过程,自动忽略参数里的非数字。
def sum(x):
result=0
for i in x:
if(type(i)==int) or (type(i)==float):
result+=i
else:
continue
return result
print(sum([1,2,3,1.1,'a',True,2]))