当前位置 : 主页 > 编程语言 > python >

【Python数据分析基础-6】数据结构之序列函数

来源:互联网 收集:自由互联 发布时间:2022-06-18
【Python数据分析基础-6】数据结构之序列函数 0. 引入 上篇文章介绍了列表及其相关方法,这篇文章介绍一下列表以及其他序列的函数。 1. 排序(sort、sotred) 1.1 sort 列表有个专门的排序方


【Python数据分析基础-6】数据结构之序列函数

0. 引入

上篇文章介绍了列表及其相关方法,这篇文章介绍一下列表以及其他序列的函数。

1. 排序(sort、sotred)

1.1 sort

列表有个专门的排序方法:​sort,该方法不需要新建对象​!

a = [4, 5, 3, 6, 8, 9, 1]
a.sort()
a[1, 3, 4, 5, 6, 8, 9]

再来看看元素是字符串的列表排序:

s = ['tu', 'dou', 'tong', 'xue']
s.sort()
s['dou', 'tong', 'tu', 'xue'] # 按照字母顺序进行排序

如果想要按照字符串长度进行排序,可以传入参数

s = ['tu', 'dou', 'tong', 'xue']
s.sort(key=len)
s['tu', 'dou', 'xue', 'tong']

1.2 sorted

除此之外,​序列包括列表都可以使用sorted函数返回一个新建的已排序列表​。该函数不仅适用于列表适用于元组等其他序列,但是返回的是列表!

a = [4, 5, 3, 6, 8, 9, 1]
sorted(a)[1, 3, 4, 5, 6, 8, 9]

再来看看当序列为元组时:

b = (2, 5, 3, 7, 5)
print(type(b))
sorted(b)<class 'tuple'> # b为元组
[2, 3, 5, 5, 7] # 返回了列表

字符串:

s = ['tu', 'dou', 'tong', 'xue']
sorted(s)['dou', 'tong', 'tu', 'xue']

传入参数:

s = ['tu', 'dou', 'tong', 'xue']
sorted(s, key=len)['tu', 'dou', 'xue', 'tong']

2. enumerate

​enumerate函数用于当我们需要在遍历序列的同时,得到每个元素及其索引。​

s = ['tu', 'dou', 'tong', 'xue']
for i, value in enumerate(s): # 索引值赋予i,元素值赋予value
print(i, value)0 tu
1 dou
2 tong
3 xue

3. zip

​zip函数可以将列表、元组或其他序列的元素进行配对,新建一个元组构成的列表:​

s1 = ['tu', 'dou', 'tong', 'xue']
s2 = ['jia', 'you']
list(zip(s1, s2))[('tu', 'jia'), ('dou', 'you')]

​zip可以处理任意长度的序列,它生成的列表长度由最短的序列决定​。

zip常常和enumerate函数一起使用,并且这其中不需要使用list函数进行换:

s1 = ['tu', 'dou', 'tong', 'xue']
s2 = ['jia', 'you']
for i, (a, b) in enumerate(zip(s1, s2)):
print(i, (a, b))0 ('tu', 'jia')
1 ('dou', 'you')

4. reversed

​reversed函数可以将序列的元素倒序排列,效果与list[::-1]相同​:

a = [4, 5, 3, 6, 8, 9, 1]
print(a[::-1])
list(reversed(a))[1, 9, 8, 6, 3, 5, 4]
[1, 9, 8, 6, 3, 5, 4]

值得一提的是,reversed是一个生成器,因此需要将其进行实例化(如使用list函数或者进行for循环),否则它是无法直接产生一个倒序的列表。

OK,这篇文章到这里就结束了,下篇文章将介绍字典!



上一篇:Python下包管理工具pip国内加速
下一篇:没有了
网友评论