大鹏

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

第五章(4) 序列

 

本章内容:

一、列表、元组和字符串 之间有的共同点

二、介绍一些序列常用的BIF(内建方法)

三、作业

 

一、列表、元组和字符串 之间有的共同点:

1、都可以通过索引得到每一个元素

2、默认索引从0开始,也支持负数索引

3、可以通过分片的方法得到一个范围内的元素的集合

4、有很多共同的操作(重复操作符、拼接操作符、成员关系操作符)

我们把它们统称为:序列

 

二、介绍一些序列常用的BIF(内建方法)

1、list([iterable))

list()方法 用于把一个可迭代的对象转换为列表


#创建一个空列表
a = list()   #可以不带参数
print(a)     # []

#将字符串的每一个字符迭代存放到列表中
b = list('Fishc')  #带参数,一个可迭代的对象
print(b)     # ['F', 'i', 's', 'h', 'c']

#将元组中的每一个元素迭代存放到列表中
c = list((1,2,3,5,8,13))
print(c)   #[1, 2, 3, 5, 8, 13]

 

2、tuple([iterable])

tuple()方法 用于把一个可迭代的对象转换为元组,具体用法和list()一样

#创建一个空元组
a = tuple()   #可以不带参数
print(a)     # ()

#将字符串的每一个字符迭代存放到元组中
b = tuple('Fishc')  #带参数,一个可迭代的对象
print(b)     # ('F', 'i', 's', 'h', 'c')

#将元组中的每一个元素迭代存放到元组中
c = tuple((1,2,3,5,8,13))
print(c)   # (1, 2, 3, 5, 8, 13)

 

3、str(obj)

str()方法用于把obj对象转换为字符串,这个方法结合int() 和float() 方法,进行数据类型的转换

 

4、len(sub)

#len() 方法用于返回sub参数的长度

str1 = " L love fishc.com"
print(len(str1))   # 17

list1 = [1,2,3,4,6,7,9]
print(len(list1))   # 7
 
tuple1 = '','','','','元组'
print(len(tuple1))    # 5

 

5、max(....)

 max()方法用于返回序列或者参数集合中的最大值,可以是一个序列,也可以是多个参数

注意:需要保证序列或者参数的数据类型统一

list1 = [1,18,13,0,-98,34,54,76,32]  #一个序列
print(max(list1))    #76

str1 = "I love fishc.com"   #一个序列
print(max(str1))   # v

a = max(5,8,1,13,5,29,10,7)   #多个参数
print(a)    #29

 

max()实现原理

tuple1 = [1,2,3,4,5,6,7,8,9]

def temp():
    temp = tuple1[0]
    for each in tuple1:
        if each >temp:
            temp = each
    return temp

b = temp()
print(b)

 

6、min(....)

 min() 跟max() 用法一样,但效果相反,用于返回序列或者参数集合中的最小值

注意:需要保证序列或者参数的数据类型统一

list1 = [1,18,13,0,-98,34,54,76,32]  #一个序列
print(min(list1))    #-98

str1 = "I love fishc.com"   #一个序列
print(min(str1))   # v

a = min(5,8,1,13,5,29,10,7)   #多个参数
print(a)    #1



list1.append('X')
print(min(list1))    #报错  TypeError: '<' not supported between instances of 'str' and 'int'

 

min()实现原理

tuple1 = [1,2,3,4,5,6,7,8,9]

def temp():
    temp = tuple1[0]
    for each in tuple1:
        if each <temp:
            temp = each
    return temp

b = temp()
print(b)

 

 

7、sum(iterable[,start])

sum() 用于返回序列iterable的总和。用法与max()和min()一样

tuple1 = 1,2,3,4,5
print(sum(tuple1))   #15

w = sum(tuple1,10)
print(w)   #25

 

8、sorted(iterable,key =None,reverse=False)

sorted() 方法用于返回一个排序的列表,是一个排序后的新列表

list.sort()是列表的内建方法,实现列表的原地排序,它们两实现的效果是一致的

list1 = [1,4,6,3,99,5,3,4,77,88,3,2,0]
list2 = list1[:]
list1.sort()
print(list1)      #  [0, 1, 2, 3, 3, 3, 4, 4, 5, 6, 77, 88, 99]

print(sorted(list2))   #[0, 1, 2, 3, 3, 3, 4, 4, 5, 6, 77, 88, 99]
print(list2)     #[1, 4, 6, 3, 99, 5, 3, 4, 77, 88, 3, 2, 0]

#注意:sorted(list2)  已经是一个新的列表了,原来的list2没有变化

 

9、reversed(sequence)

reversed()方法用于返回逆向迭代序列的值。实现的效果和list.reverse() 是一致的。区别在于list.reverse() 是原地翻转,而reversed()是返回一个翻转后的迭代器对象。你没看错,返回的不是一个列表,是一个迭代器对象

list1 = [1,4,6,3,99,5,3,4,77,88,3,2,0]

list1.reverse()
print(list1)    # [0, 2, 3, 88, 77, 4, 3, 5, 99, 3, 6, 4, 1]

print(reversed(list1))     # <list_reverseiterator object at 0x0000000002242390>

#用for 循环来取
for each in reversed(list1):
    print(each,end=',')

#1,4,6,3,99,5,3,4,77,88,3,2,0,

 

 

10、enumerate(iterable)

 enumerate() 方法生成由二元组(二元组就是元素数量为二的元组)构成的一个迭代对象,每一个二元组是由可迭代参数的索引号及对应的元素组成的。

str1 = "Fishc"

for each in enumerate(str1):
    print(each)

"""
(0, 'F')
(1, 'i')
(2, 's')
(3, 'h')
(4, 'c')
"""  

 

 

11、zip(iter1[,iter2[...]])

zip()方法用于返回由各个可迭代参数共同组成的元组

list1 = [1,3,5,7,9]
str1 = "Fishc"
for each in zip(list1,str1):
    print(each)
'''
(1, 'F')
(3, 'i')
(5, 's')
(7, 'h')
(9, 'c')

'''

tuple1 = (2,4,6,8,10)

for each in zip(list1,str1,tuple1):
    print(each)
    
"""
(1, 'F', 2)
(3, 'i', 4)
(5, 's', 6)
(7, 'h', 8)
(9, 'c', 10)
"""

 

 

 三、作业

[课后作业] 第016讲:序列!序列! | 课后测试题

 

posted on 2018-12-15 12:59  pf42280  阅读(317)  评论(0)    收藏  举报