发布于 2026-01-06 1 阅读
0

Python 数据结构(列表、元组、字典、集合)

Python 数据结构(列表、元组、字典、集合)

在这篇博文中,我们将简要概述一些 Python3 特有的数据结构。

Python 内置了四种基本数据结构:列表 (List)、字典 (Dictionary)、元组 (Tuple) 和集合 (Set)。我们将了解如何使用它们,以及它们如何简化我们的编程工作。

Python列表

Python 中的列表是元素的集合。列表的长度可以任意长,并且各个元素可以具有相同的类型,也可以不同。列表中的元素用逗号分隔,并用方括号括起来:

some_list = [1, 2, 3, 4, 5]
some_list = ['a','b','c','d']
some_list = [7, 'hi', None, False, True, ['another', 'list']]
Enter fullscreen mode Exit fullscreen mode

要访问列表中的元素,我们使用方括号表示法并传入索引。Python 中的列表使用从零开始的索引:

some_list = ['a', 1, False]
print(some_list[2]) #False
Enter fullscreen mode Exit fullscreen mode

此外,您还可以使用一些内置方法。以下是一些其他方法:

append() - 将值添加到列表末尾:

some_list = [11,25,3]
some_list.append(10)
print(some_list) #[11,25,3,10]
Enter fullscreen mode Exit fullscreen mode

clear() - 删除列表中的所有值:

some_list = [1,2,3]
some_list.clear()
print(some_list) #[]
Enter fullscreen mode Exit fullscreen mode

copy() - 对列表进行浅拷贝:

some_list = [2,3,4]
another_list = some_list.copy()
print(another_list) #[2, 3, 4]
Enter fullscreen mode Exit fullscreen mode

count() - 统计列表中某个项目出现的次数:

some_list = [1,2,3,4,5,5,5,5]
some_list.count(1) #1
print(some_list.count(5)) #4
Enter fullscreen mode Exit fullscreen mode

extend() - 将一个列表的所有元素添加到另一个列表中:

some_list = [1,2,3]
some_list.extend([5,6,7])
print(some_list) #[1,2,3,5,6,7] 
Enter fullscreen mode Exit fullscreen mode

index() - 返回元素的索引。如果找不到该元素,index 将返回 ValueError:

some_list = [4,8,6,4]
print(some_list.index(8)) #1
print(some_list.index(4)) #0 - it only finds the index of the first matching element
print(some_list.index(12)) #ValueError
Enter fullscreen mode Exit fullscreen mode

insert() - 将元素插入到列表的指定索引位置:

some_list = [4,6,8]
some_list.insert(2,'awesome') #inserts 'awesome' at index 2
print(some_list) #[4,6,'awesome',8]
Enter fullscreen mode Exit fullscreen mode

pop() - 从列表中移除最后一个元素并返回被移除的元素:

some_list = [3,4]
print(some_list.pop()) #4
print(some_list.pop()) #IndexError
Enter fullscreen mode Exit fullscreen mode

如果对空列表调用 pop() 函数,则会抛出错误。

remove() - 删除某个值的第一个匹配项:

some_list = [1,2,3,1]
some_list.remove(1)
print(some_list) #[2,3,1]
Enter fullscreen mode Exit fullscreen mode

reverse() - 反转列表中所有元素的顺序:

some_list = [1,2,3,4]
some_list.reverse()
print(some_list) #[4,3,2,1]
Enter fullscreen mode Exit fullscreen mode

sort() - 将列表中的所有元素按升序排序:

some_list = [1,4,3,2]
some_list.sort()
print(some_list) #[1,2,3,4]
Enter fullscreen mode Exit fullscreen mode

Python 元组

与列表类似,Python 中的元组也是一种元素集合。区别在于元组是不可变的,这意味着一旦赋值就不能更改元素,并且元组使用圆括号,而列表使用方括号。
由于元组的不可变性,对元组的操作比对列表的操作更快。

some_tuple = ('a', 'b', 'c', 'd')
Enter fullscreen mode Exit fullscreen mode

要编写一个只包含单个值的元组,即使只有一个值,也必须包含逗号:

single_tuple = ('a',)
Enter fullscreen mode Exit fullscreen mode

以下是一些常用的元组处理方法:

count() - 返回元组中某个值出现的次数:

some_tuple = (1,2,3,3,3)
print(some_tuple.count(1)) #1
print(some_tuple.count(3)) #3
Enter fullscreen mode Exit fullscreen mode

index() - 返回元组中给定元素的索引:

some_tuple = (1,2,3,3,3)
print(some_tuple.index(1)) #0
print(some_tuple.index(5)) #ValueError
Enter fullscreen mode Exit fullscreen mode

Python字典

Python 中的字典是键值对。它们使用花括号定义,键值对之间用逗号分隔,键和值之间用冒号连接:

weekdays = {
    1: 'Monday',
    2: 'Tuesday',
    3: 'Wednesday',
    4: 'Thursday',
    5: 'Friday',
    6: 'Saturday',
    7: 'Sunday'
}
Enter fullscreen mode Exit fullscreen mode

-字典中的键必须唯一(不能有两个相同的键)
-键是不可变的
-键和值可以是任何数据类型
-keys() 函数返回字典中键的列表
-values() 函数返回字典中值的列表

以下是词典中常用的几种方法:

clear() - 清除字典中的所有键和值:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}
car.clear()
print(car) #{}
Enter fullscreen mode Exit fullscreen mode

copy() - 创建字典的副本:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.copy()
print(x) #{'brand': 'Maserati', 'model': 'Quattroporte'}
Enter fullscreen mode Exit fullscreen mode

fromkeys() - 根据逗号分隔的值创建键值对:

keys = ('a', 'e', 'i', 'o', 'u')
value = 'vowel'

vowels = dict.fromkeys(keys, value) 
#{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}
Enter fullscreen mode Exit fullscreen mode

get() - 检索对象中的键,如果键不存在,则返回 None 而不是 KeyError:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.get('model')
print(x) #Quattroporte
Enter fullscreen mode Exit fullscreen mode

items() - 返回一个包含所有键值对的元组列表:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.items()
print(x) #[('brand', 'Maserati'), ('model', 'Quattroporte')]
Enter fullscreen mode Exit fullscreen mode

keys() - 返回一个包含对象中所有键的 dict_keys 对象:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.keys()
print(x) #(['brand', 'model'])
Enter fullscreen mode Exit fullscreen mode

setdefault() - 返回指定键的值:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.setdefault('model', 'Ghibli')
print(x) #Quattroporte 
Enter fullscreen mode Exit fullscreen mode

update() - 使用另一组键值对更新字典中的键和值:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.update({'color': 'white'})
print(x) #{'brand': 'Maserati', 'model': 'Quattroporte', 'color': 'white'}
Enter fullscreen mode Exit fullscreen mode

values() - 返回字典中所有值的列表:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}
x = car.values()
print(list(x)) #['Maserati', 'Quattroporte']
Enter fullscreen mode Exit fullscreen mode

Python 集

在 Python 中,集合(Set)是一种无序的对象集合。除了可迭代和可变之外,集合还不允许重复值。如果您需要跟踪一组元素,但不需要关心元素的顺序,那么集合就非常有用。

以下是一些固定的方法:

add() - 向集合中添加元素。如果该元素已存在于集合中,则集合不会改变:

s = {1,2,3}
s.add(4)
print(s) #{1, 2, 3, 4}
s.add(4)
print(s) #{1,2,3,4}
Enter fullscreen mode Exit fullscreen mode

clear() - 删除集合中的所有元素:

s = {1,2,3}
s.clear()
print(s) #set()
Enter fullscreen mode Exit fullscreen mode

copy() - 创建集合的副本:

s = {1,2,3}
another_s = s.copy()
print(another_s) #{1, 2, 3}
Enter fullscreen mode Exit fullscreen mode

difference() - 返回一个新集合,其中包含第一个集合中存在但不在传递给 difference 的集合中的所有元素:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.difference(set2) 
print(x) #{1}
y = set2.difference(set1) 
print(y) #{4}
Enter fullscreen mode Exit fullscreen mode

intersection() - 返回一个新集合,其中包含两个集合中都存在的元素:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.intersection(set2) 
print(x) #{2,3}
Enter fullscreen mode Exit fullscreen mode

union - 返回两个集合的并集:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.union(set2) 
print(x) #{1,2,3,4}
Enter fullscreen mode Exit fullscreen mode

对开发者而言,深入理解数据结构至关重要。希望本文能帮助你更好地理解Python项目中的数据结构。

文章来源:https://dev.to/highflyer910/python-data-structurals-lists-tuples-dictionaries-sets-3epc