欢迎光临
生活尽了力,其他靠佛系

【Python】列表List使用总结

Python中的列表是一个非常强大的数据结构,基本上写Python程序时,都会用到,下面我把经常使用List的一些经验总结如下,后期如果再有相关心得再做补充。

基本内容

列表List,一个可以存放任意类型对象的有序集合,它没有固定大小,也就是说大小可变的。我们可以通过索引以及偏移量等去修改、调用列表等。

创建列表

创建相对容易,如下,我们可以直接通过下标(即索引)访问列表元素,需要注意的是下表是从0开始,其它语言也是如此。当然,Python的List还有一个特点,就是允许下标是负数,例如List[-1]则就是表示最后一个元素。除了索引内容外,List还有一个重要的属性就是切片。切片后会返回一个子列表,切片的索引有两个默认值,第一个值索引默认为0,第二个索引默认切片的列表大小。

List1 = ['Python', 1, 2, 3, 0.5]
List2 = ["Hello", "Python"]
print(List1[0],List2[1], List1[-1])
# 切片
print(List1[0:4], List1[:4])
print(List1[:],List1[0:])
# 结果如下
# Python Python 0.5
# ['Python', 1, 2, 3] ['Python', 1, 2, 3]
# ['Python', 1, 2, 3, 0.5] ['Python', 1, 2, 3, 0.5]

常用方法

List比较常用的方法也就那么多,现在记录如下:

函数名称 函数说明
list.append(x) 添加一个元素到列表的末尾,相当于a[len(a):] = [x]
list.extend(L) 将参数中的列表添加到自身列表的尾部,相当于a[len(a):] = L
list.insert(i,x) 在下标为i的元素位置前插入一个元素
list.remove(x) 删除列表第一个值为x的元素,如果没有这样的元素会报错
list.pop(i) 删除列表指定位置的元素并返回该元素,其中i可以省略,默认list中最后一个元素
list.index(x) 返回列表第一个值为x的索引,如果没有这样的元素会报错
list.count(x) 返回列表中x出现的次数
list.sort() 对列表中的元素进行排序 (可参考文献1)
list.reverse() 反转列表中的元素
List1 = [1, 2, 3]
List1.append(5.1)
print(List1)
# 结果:[1, 2, 3, 5.1]
List1.insert(1,"python")
print(List1)
# 结果:[1, 'python', 2, 3, 5.1]
List1.remove(3)
print(List1)
# 结果:[1, 'python', 2, 5.1]
List1.extend([1,2,3,99])
print(List1)
# 结果:[1, 'python', 2, 5.1, 1, 2, 3, 99]
print(List1.index(99), List1.count(2))
# 结果:7 2
List1.reverse()
print(List1)
# 结果:[99, 3, 2, 1, 5.1, 2, 'python', 1]
# 由于有字符串,我们先把字符串删除
List1.remove("python")
List1.sort()       # 改变原list
print(List1)
# 结果:[1, 1, 2, 2, 3, 5.1, 99]

当然List还有其它玩法,具体的以及基础的内容可参见文献2.

拓展

列表用作栈和队列

如果有过数据结构基础的友友可能会问一个,Python中有哪些数据结构?
列表函数使得列表当作非常容易,栈的思想是“先进后出”,使用append()方法压入,使用pop()方法弹出。其中代码如下:

stack = [1, 3, 5]
stack.append(7)
stack.append(9)
print(stack)
stack.pop()
print(stack)
# 结果
# [1, 3, 5, 7, 9]
# [1, 3, 5, 7]

队列的思想是第一个最先进入的元素最先出(先进先出),虽然列表的append()和pop()方法也可以实现此目的,但是列表用在实现此目的效率反而不高,主要是因为列表末尾插入元素效率高,但开头弹出元素的效率很低。如果要实现一个队列,我们可以借助collection.deque,这个函数设计的目的就是能够在两端快速添加和弹出元素,例子如下:

from collections import deque
queue = deque([1,2,3])
queue.append(10)           # 末尾插入元素10
queue.append(11)           # 末尾插入元素11
print(queue.popleft())     # 开头弹出元素1
print(queue.popleft())     # 开头弹出元素2
print(queue)
# 转成list格式
res = list(queue)
print(res)
# 结果
# 1
# 2
# deque([3, 10, 11])
# [3, 10, 11]

当然deque还有一些其它方法,感兴趣的友友可以做进一步的探索。

Reference

1.python中sort排序使用
2.https://www.runoob.com/python3/python3-list.html

赞(1) 打赏
未经允许不得转载:AIAS编程有道 | Artificial Intelligence Algorithm Scientist » 【Python】列表List使用总结
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用,就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏