Python从入门到实战之数据结构篇
什么是数据结构
数据结构是计算机存储、组织数据的方式。它是指相互之间存在一种或多种特定关系的数据元素集合。数据结构包括数组、链表、栈、队列、树、图等。
Python中的数据结构
Python中内置了许多数据结构,包括列表、元组、字典、集合等。下面将分别介绍这些数据结构。
列表
列表是Python中最常用的数据结构一,它是一个有序的集合,可以存储任意类型的对象。列表使用方括号[]来表示,元素之间使用逗号分隔。下面是一个示例,演示了如何创建一个列表:
# 创建一个列表
lst = [1,2, 3, 4, 5]
print(lst) # [1, 2, 3, 4, 5]
在这个例中,我们使用方括号[]创建了一个列表lst,包含5个整数元素。然后,我们输出lst,得到[1, 2, 3, 4, 5]。
列表是可变的,可以随意添加、删除和修改元素。下面是一些示例,演示了如何添加、删除和修改列表中的元素:
# 添加素
lst.append(6)
print(lst) # [1, 2, 3, 4, 5, 6]
# 删除元素
lst.remove(3)
print(lst) # [1, 2, 4, 5, 6]
# 修改元素
lst[0] = 0
print(lst) # [0, 2, 4, 5, 6]
在这些示例中,我们使用append()方法向列表中添加一个元素,使用remove()方法删除一个元素,使用索引操作修改一个元素。
元组
元组是Python中另一个常用的数据结构,它是一个有序的集合,可以存储任意类型的对象。元组使用小括号()来表示,元素之间使用逗号分隔。下面是一个示例,演示了如何创建一个元组:
# 创建一个元组
tup = (1, 2, 3, 4, 5)
print(tup) # (1, 2, 3, 4, 5)
在这个例子中,我们使用小括号()创建了一个元组tup,包含5个整数元素。然后,我们输出tup,得到(1, 2, 3, 4, 5)。
元组是不可变的,一旦创建就不能修改。如果我们尝试修改元组中的元素,Python会抛出TypeError异常。下面是一个示例,演示了如何尝试修改元组中的元素```python
尝试修改元组中的元素
tup = (1, 2, 3, 4, 5)
tup[0] 0 # TypeError: 'tuple' object does not support item assignment
在这个例子中,我们尝试将元组tup中的第一个元素修改为0,但是Python抛出了TypeError异常,提示元组不支持元赋值操作。
### 字典
字典是Python中另一个重要的数据结构,它是一个无序的键值对集合。字典使用花括号{}来表示,每个键值对之间使用冒号:分隔,键值对之间使用逗号分隔。下面是一个示例,演示了如何创建一个字典:
```python
# 创建一个字典
dic = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dic) # {'name': 'Tom', 'age': 18, 'gender': 'male'}
在这个例子中,我们使用花括号{}创建了一个字典dic,包含3个键值。然后,我们输出dic,得到{'name': 'Tom', 'age': 18, 'gender': 'male'}。
字典中的键必须是不可变的,可以是字符串、数字或元组等不可变类型。值可以是任意类型的对象。下面是一些示例,演示了如何添加、删除和修改字典中的键值对:
# 添加键值对
dic['address'] = 'ijing'
print(dic) # {'name': 'Tom', 'age': 18, 'gender': 'male', 'address': 'Beijing'}
# 删除键值对
del dic['gender']
print(dic) # {'name': 'Tom', 'age': 18, 'address': 'Beijing# 修改键值对
dic['age'] = 20
print(dic) # {'name': 'Tom', 'age': 20, 'address': 'Beijing'}
在这些示例中,我们使用索引操作添加、和修改字典中的键值对。
集合
集合是Python中另一个常用的数据结构,它是一个无序的不重复素集合。集合使用花括号{}来表示,元素之间使用逗号分隔。下面是一个示例,演示了如何创建一个集合:
# 创建一个集合
s = {1, 2, 3, , 5}
print(s) # {1, 2, 3, 4, 5}
在这个例子中,我们使用花括号{}创建了一个集合s,包含5个整数元素。然后,我们输出,得到{1, 2, 3, 4, 5}。
集合中的元素必须是不可变的,可以是字符串、数字或元组等不可变类型。下面是一些示例,演示了如添加、删除和修改集合中的元素:
# 添加元素
s.add(6)
print(s) # {1, 2, , 4, 5, 6}
# 删除元素.remove(3)
print(s) # {1, 2, 4, 5, 6}
在这些示例中,我们使用add()方法向集合中添加一个元素,使用remove()方法删除一个元素。
示例说明
示例一:使用列表实现栈
栈是一种后进先出(LIFO)数据结构,可以使用列表来实现。下面是一个示例,演示了如何使用列表实现栈:
# 使用列表实现栈
stack = []
stack.append(1)
stack.append(2)
stack.append(3)
print(stack) # [1 2,3]
stack.pop()
print(stack) # [1, 2]
在这个例子中,我们使用列表stack来实现栈,使用append()方法向栈中添加元素,使用pop()方法从栈中弹出元素。
示例二:使用字典实现图
图是一种由节点和边组成的数据结构,可以使用字典来实现。下面是一个示例,演示了如何使用字典实现图:
# 使用字典实现图
graph = {'A': ['B', 'C'],
'B': ['C', 'D'],
'C': ['D'],
'D': ['C'],
'E': ['F'],
'F': ['C']}
print(graph) # {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['D'], 'D': ['C'], 'E': ['F'], 'F': ['C']}
在这个例子中,我们使用字典graph来实现图,每个键表示一个节点,对应的值是一个列表,表示与该节点相邻的节点。
总结
Python中内置了许多数据结构,包括列表、元组、字典、集合等。这些数据结构可以用于存储和组织数据,实现各种算法和数据处理任务。无论使用哪种数据结构,我们都需要注意代码的可读性和效率,以便更好地维护和扩展程序。
示例说明
示例一:使用列表实现栈
栈是一种后进先出(LIFO)数据结构,可以使用列表来实现。下面是一个示例,演示了如何使用列表实现栈:
# 使用列表实现栈
stack = []
stack.append(1)
stack.append(2)
stack.append(3)
print(stack) # [1 2,3]
stack.pop()
print(stack) # [1, 2]
在这个例子中,我们使用列表stack来实现栈,使用append()方法向栈中添加元素,使用pop()方法从栈中弹出元素。
示例二:使用字典实现图
图是一种由节点和边组成的数据结构,可以使用字典来实现。下面是一个示例,演示了如何使用字典实现图:
# 使用字典实现图
graph = {'A': ['B', 'C'],
'B': ['C', 'D'],
'C': ['D'],
'D': ['C'],
'E': ['F'],
'F': ['C']}
print(graph) # {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['D'], 'D': ['C'], 'E': ['F'], 'F': ['C']}
在这个例子中,我们使用字典graph来实现图,每个键表示一个节点,对应的值是一个列表,表示与该节点相邻的节点。
总结
Python中内置了许多数据结构,包括列表、元组、字典、集合等。这些数据结构可以用于存储和组织数据,实现各种算法和数据处理任务。无论使用哪种数据结构,我们都需要注意代码的可读性和效率,以便更好地维护和扩展程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python从入门到实战之数据结构篇 - Python技术站