Posts Python-列表与元组
Post
Cancel

Python-列表与元组

Python 中最常见的两种数据结构:列表(list)和元组(tuple)

1、列表是动态的,长度不固定,可以增加,删除,改变元素 2、元组是静态的,长度固定,无法增加,删除,改变

一、修改列表和元组

1
2
3
4
5
6
7
8
9
tup = (1,2,3,4)
new_tup = tup + (5,)
print (new_tup)
结果:(1,2,3,4,5)

l = [1,2,3,4]
l.append(5)
print(l)
结果:[1,2,3,4,5]

二、列表和元组索引 ```-1 表示最后一个元素,-2 表示倒数第二个元素,以此类推。 l = [1, 2, 3, 4] print(l[-1]) 4

tup = (1, 2, 3, 4) print(tup[-1]) 4

1
2
三、切片

list = [1, 2, 3, 4] l[1:3] # 返回列表中索引从 1 到 2 的子列表 [2, 3]

tup = (1, 2, 3, 4) tup[1:3] # 返回元组中索引从 1 到 2 的子元组 (2, 3)

1
2
当然,两者也可以通过 list() 和 tuple() 函数相互转换

list((1, 2, 3)) [1, 2, 3]

tuple([1, 2, 3]) (1, 2, 3)

1
2
3
4
5
6
四、内置函数
* count(item)  表示统计列表/元组中item出现的次数。
* index(item)  表示返回列表/元组中item第一次出现的索引。
* list.reverse() 和 list.sort() 分别表示原地倒转列表和排序列表(元组没有)。
* reversed() 和 sorted() 同样表示对列表/元组进行倒转和排序,但是会返回一个倒转后或者排好序的新的列表 / 元组。

l = [3, 2, 3, 7, 8, 1] l.count(3) 2 l.index(7) 3 l.reverse() l [1, 8, 7, 3, 2, 3] l.sort() l [1, 2, 3, 3, 7, 8]

tup = (3, 2, 3, 7, 8, 1) tup.count(3) 2 tup.index(7) 3 list(reversed(tup)) [1, 8, 7, 3, 2, 3] sorted(tup) [1, 2, 3, 3, 7, 8]

```

五、列表与元组存储差异

  • 1、列表是动态的,所以它需要存储指针,来指向对应的元素。
  • 2、由于列表可变,所以需要额外存储已经分配的长度大小,这样才可以实时追踪列表空间的使用情况,当空间不足时,及时分配额外空间。
  • 3、元组要比列表更加轻量级一些,所以总体上来说,元组的性能速度要略优于列表。

六、列表与元组使用场景

  • 1、如果存储的数据与数量不变,那么远用元组更合适。
  • 2、如果存储的数据或数量是可变的,那么则用列表更为合适

七、总结 列表与元组都是有序的,可以存储任意数据类型的集合,区别在于:

  • 列表是动态的,长度可变,可以随意增加、删减或改变元素,列表的存储空间略大于元组,性能略逊于元组。
  • 元组是静态的,长度大小固定,不可以对元素进行增加、删减或者改变操作。元组相对列表更加轻量级,性能稍优。
This post is licensed under CC BY 4.0 by the author.