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

【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,这篇文章到这里就结束了,下篇文章将介绍字典!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值