用Python实现的常见数据结构函数
Python是一门十分流行的编程语言,在实现常见数据结构函数方面也有着许多不错的实现。本文将介绍Python中常见的数据结构和相应的函数实现。
1. 列表
列表是Python中最常用的数据结构,它可以容纳任意类型的对象,可变且支持索引。
(1) append()函数:在列表末尾添加新元素。
lst = [1, 2, 3] lst.append(4) print(lst) # [1, 2, 3, 4]
(2) extend()函数:一次性将另一个列表中的所有元素添加到末尾。
lst1 = [1, 2, 3] lst2 = [4, 5, 6] lst1.extend(lst2) print(lst1) # [1, 2, 3, 4, 5, 6]
(3) insert()函数:将元素插入到指定位置。
lst = [1, 2, 3] lst.insert(1, 4) print(lst) # [1, 4, 2, 3]
(4) remove()函数:移除 个匹配项。
lst = [1, 2, 3, 1] lst.remove(1) print(lst) # [2, 3, 1]
(5) pop()函数:移除最后一个元素并返回该元素的值。
lst = [1, 2, 3] val = lst.pop() print(val) # 3 print(lst) # [1, 2]
2. 元组
元组与列表类似,不同之处在于元组一旦创建就不可修改,也就是说它是不可变的。
(1) count()函数:返回元素在元组中出现的次数。
tup = (1, 2, 3, 1, 2, 1) cnt = tup.count(1) print(cnt) # 3
(2) index()函数:返回 个匹配元素的索引。
tup = (1, 2, 3, 1, 2, 1) idx = tup.index(2) print(idx) # 1
3. 字典
字典是Python中另一个重要的数据结构,由键值对组成。需要注意的是,字典是无序的。
(1) keys()函数:返回字典中所有键的列表。
dic = {'a': 1, 'b': 2, 'c': 3}
keys = dic.keys()
print(keys) # dict_keys(['a', 'b', 'c'])
(2) values()函数:返回字典中所有值的列表。
dic = {'a': 1, 'b': 2, 'c': 3}
vals = dic.values()
print(vals) # dict_values([1, 2, 3])
(3) items()函数:返回字典中所有键值对的元组列表。
dic = {'a': 1, 'b': 2, 'c': 3}
items = dic.items()
print(items) # dict_items([('a', 1), ('b', 2), ('c', 3)])
(4) pop()函数:移除并返回指定键的值。
dic = {'a': 1, 'b': 2, 'c': 3}
val = dic.pop('b')
print(val) # 2
print(dic) # {'a': 1, 'c': 3}
4. 集合
集合用于存储无序的、不重复的元素。
(1) add()函数:添加元素到集合中。
s = {1, 2, 3}
s.add(4)
print(s) # {1, 2, 3, 4}
(2) update()函数:将另一个集合中的元素添加到当前集合中。
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1.update(s2)
print(s1) # {1, 2, 3, 4}
(3) discard()函数:移除指定元素。
s = {1, 2, 3}
s.discard(2)
print(s) # {1, 3}
5. 堆栈
堆栈是一种后进先出(LIFO)的数据结构,可以使用列表实现。
(1) push()函数:在顶部添加新元素。
stack = ['a', 'b', 'c']
stack.append('d')
print(stack) # ['a', 'b', 'c', 'd']
(2) pop()函数:移除并返回顶部元素。
stack = ['a', 'b', 'c'] val = stack.pop() print(val) # 'c' print(stack) # ['a', 'b']
6. 队列
队列是一种先进先出(FIFO)的数据结构,也可以使用列表实现。不过,由于在列表中移除元素效率较低,因此使用双端队列(collections.deque)更为合适。
(1) append()函数:在队列的右侧添加新元素。
from collections import deque
queue = deque(['a', 'b', 'c'])
queue.append('d')
print(queue) # deque(['a', 'b', 'c', 'd'])
(2) popleft()函数:移除并返回队列的左侧元素。
from collections import deque queue = deque(['a', 'b', 'c']) val = queue.popleft() print(val) # 'a' print(queue) # deque(['b', 'c'])
以上就是Python中常见的数据结构和相应的函数实现。
