欢迎访问宙启技术站
智能推送

用Python实现的常见数据结构函数

发布时间:2023-05-27 15:00:43

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中常见的数据结构和相应的函数实现。