Python中序列分析

这里写目录标题列表的内置函数**函数:enumerate(iter)****函数:len(seq)、max()、min()****函数:sum(seq,init=0)****函数:reversed()****函数:sorted()****函数:zip([it0,it1…itN])**
列表的内置函数

函数名 功能
enumerate(itr) 接受一个可迭代对象作为参数,返回一个enumerate对象(同时也是一个迭代器),该对象生成由 itr ,每个元素的index值item值组成的元组
len(seq) 返回 seq 的长度
max() 找出序列的最大值
min() 找出序列的最小值
sum(seq,init=0) 返回seq和可选参数init的总和,其效果等同于reduce(operator,add,seq,init)
reversed(seq) 接受一个序列作为参数,返回一个以逆序访问的迭代器
sorted(iter,func=None,key=None,reverse=Flase) j接受一个可迭代对象作为参数,返回一个有序的列表;可选参数func、key和reverse的含义跟 list.sort() 内建函数的参数含义一样
zip([it0,it1,…itN]) 返回一个列表,其第一个元素是it0、t1….这些元素的第一个元素组成的一个元组,第二个…依此类推

函数:enumerate(iter)
NBA = ['湖人','雷霆','奥德赛'] for index, items in enumerate(NBA):
# 接受一个迭代对象,返回一个enumerate 对象。
print(index+1,items)

运行结果:

1 湖人
2 雷霆
3 奥德赛

函数:len(seq)、max()、min()
NBA = ['湖人','雷霆','奥德赛'] print (len(NBA) )
# 求出该序列的长度
print (max(NBA) )
# 找出该序列中最大值
print (min(NBA) )
# 找出该序列中最小值

运行结果:

3 # NBA 序列的长度
雷霆 # NBA 序列中最大值
奥德赛 # NBA 序列中最小值

那么问题来了! 在Python中是如何比较汉字的呢?
答: Python是使用计算机中的Unicode编码进行对汉字的处理。

什么是Unicode编码呢?

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至
0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

函数:sum(seq,init=0)
number = [1,2,3,4,5,6,7] print(sum(number) )
# 求出该序列中所有数的和

运行结果:

28 # 序列 number 中所有数的和

函数:reversed()
NBA = ['湖人','雷霆','奥德赛'] new = reversed(NBA)
print(list(new))

运行结果:

['奥德赛', '雷霆', '湖人']
函数:sorted()

在使用该函数前,重温一下该函数的公式:sorted(iter,func=None,key=None,reverse=Flase) 我们会发现,在该函数后也有一个 reverse函数,那么我们开始解析:

参数说明:

iterable – 可迭代对象。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

介绍一个新函数: sort()

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sort()会改变原列表,而sorted()不会改变!

以下实例展示了 sorted 的最简单的使用方法:

print(sorted([5, 2, 3, 1, 4]))
# 默认为升序
运行结果:[1, 2, 3, 4, 5]

你也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率会稍微高一些。

a=[5,2,3,1,4] a.sort()
print(a)
[1,2,3,4,5] # 运行结果

另一个区别在于list.sort() 方法只为 list 定义。而 sorted() 函数可以接收任何的 iterable。

sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5] #运行结果

利用key进行倒序排序

example_list = [5, 0, 6, 1, 2, 7, 3, 4] result_list = sorted(example_list, key=lambda x: x*-1)
print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0] #运行结果

要进行反向排序,也通过传入第三个参数 reverse=True:

example_list = [5, 0, 6, 1, 2, 7, 3, 4] sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0] #运行结果

函数:zip([it0,it1…itN])

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

我们可以使用 list() 转换来输出列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

a = [1,2,3] b = [4,5,6] c = [4,5,6,7,8] zipped = zip(a,b) # 返回一个对象
print(zipped)

list(zipped) # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]

list(zip(a,c)) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]

a1, a2 = zip(*zip(a,b))
# 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
print(list(a1))
#运行结果:[1, 2, 3]

print(list(a2))
# 运行结果:[4, 5, 6]


作者:今天写多少了?