列表是一种可变的序列类型,可以存储任意类型的元素。列表使用方括号 [] 来表示。
创建列表
my_list = [1, 2, 3] print(my_list) # 输出:[1, 2, 3]
访问列表中的元素
my_list = ['a', 'b', 'c', 'd'] print(my_list[0]) # 输出:'a' print(my_list[-1]) # 输出:'d'
修改列表中的元素
my_list = ['a', 'b', 'c', 'd'] my_list[0] = 'z' print(my_list) # 输出:['z', 'b', 'c', 'd']
添加元素
使用 append() 方法
my_list = ['a', 'b', 'c']
my_list.append('d')
print(my_list) # 输出:['a', 'b', 'c', 'd']使用 insert() 方法
my_list = ['a', 'b', 'c'] my_list.insert(1, 'z') # 在索引1的位置插入元素'z' print(my_list) # 输出:['a', 'z', 'b', 'c']
删除元素
使用 del 关键字
my_list = ['a', 'b', 'c', 'd'] del my_list[0] print(my_list) # 输出:['b', 'c', 'd']
使用 remove() 方法
my_list = ['a', 'b', 'c', 'd']
my_list.remove('b')
print(my_list) # 输出:['a', 'c', 'd']使用 pop() 方法
my_list = ['a', 'b', 'c', 'd'] last_element = my_list.pop() print(last_element) # 输出:'d' print(my_list) # 输出:['a', 'b', 'c']
列表切片
my_list = ['a', 'b', 'c', 'd', 'e'] print(my_list[1:3]) # 输出:['b', 'c'] print(my_list[:3]) # 输出:['a', 'b', 'c'] print(my_list[2:]) # 输出:['c', 'd', 'e'] print(my_list[::2]) # 输出:['a', 'c', 'e']
列表排序
使用 sort() 方法
my_list = [5, 1, 9, 3] my_list.sort() print(my_list) # 输出:[1, 3, 5, 9] # 对字符串进行排序 my_list = ['banana', 'apple', 'cherry'] my_list.sort() print(my_list) # 输出:['apple', 'banana', 'cherry']
使用 sorted() 函数
my_list = [5, 1, 9, 3] sorted_list = sorted(my_list) print(sorted_list) # 输出:[1, 3, 5, 9] # 对字符串进行排序 my_list = ['banana', 'apple', 'cherry'] sorted_list = sorted(my_list) print(sorted_list) # 输出:['apple', 'banana', 'cherry']
反向排序
my_list = [5, 1, 9, 3] my_list.sort(reverse=True) print(my_list) # 输出:[9, 5, 3, 1] # 对字符串进行反向排序 my_list = ['banana', 'apple', 'cherry'] my_list.sort(key=str.lower, reverse=True) print(my_list) # 输出:['cherry', 'banana', 'apple']
列表推导式
# 将列表中的每个元素平方 numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] print(squares) # 输出:[1, 4, 9, 16, 25] # 过滤出偶数 even_numbers = [x for x in numbers if x % 2 == 0] print(even_numbers) # 输出:[2, 4]
元组(Tuples)
元组是一种不可变的序列类型,可以存储任意类型的元素。元组使用圆括号 () 来表示。
创建元组
my_tuple = (1, 2, 3) print(my_tuple) # 输出:(1, 2, 3)
访问元组中的元素
my_tuple = ('a', 'b', 'c', 'd')
print(my_tuple[0]) # 输出:'a'
print(my_tuple[-1]) # 输出:'d'元组不可变性
my_tuple = (1, 2, 3) my_tuple[0] = 10 # 抛出 TypeError: 'tuple' object does not support item assignment
元组解包
x, y, z = (1, 2, 3) print(x) # 输出:1 print(y) # 输出:2 print(z) # 输出:3
元组和列表之间的转换
转换为列表
my_tuple = (1, 2, 3) my_list = list(my_tuple) print(my_list) # 输出:[1, 2, 3]
转换为元组
my_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple) # 输出:(1, 2, 3)
字典(Dictionaries)
字典是一种可变的映射类型,可以存储键值对。字典使用花括号 {} 来表示。
创建字典
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict) # 输出:{'name': 'Alice', 'age': 25}访问字典中的元素
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict['name']) # 输出:'Alice'
print(my_dict.get('age')) # 输出:25添加或修改字典中的元素
my_dict = {'name': 'Alice', 'age': 25}
my_dict['gender'] = 'female'
print(my_dict) # 输出:{'name': 'Alice', 'age': 25, 'gender': 'female'}
my_dict['age'] = 26
print(my_dict) # 输出:{'name': 'Alice', 'age': 26, 'gender': 'female'}删除字典中的元素
使用 del 关键字
my_dict = {'name': 'Alice', 'age': 26, 'gender': 'female'}
del my_dict['age']
print(my_dict) # 输出:{'name': 'Alice', 'gender': 'female'}使用 pop() 方法
my_dict = {'name': 'Alice', 'age': 26, 'gender': 'female'}
age = my_dict.pop('age')
print(age) # 输出:26
print(my_dict) # 输出:{'name': 'Alice', 'gender': 'female'}遍历字典
遍历键
my_dict = {'name': 'Alice', 'age': 26, 'gender': 'female'}
for key in my_dict:
print(key) # 输出:'name', 'age', 'gender'遍历值
my_dict = {'name': 'Alice', 'age': 26, 'gender': 'female'}
for value in my_dict.values():
print(value) # 输出:'Alice', 26, 'female'遍历键值对
my_dict = {'name': 'Alice', 'age': 26, 'gender': 'female'}
for key, value in my_dict.items():
print(f'{key}: {value}') # 输出:'name: Alice', 'age: 26', 'gender: female'字典推导式
// www.javascriptcn.com code example
# 将列表中的每个元素转换为字典中的键值对
keys = ['a', 'b', 'c']
values = [1, 2, 3]
my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict) # 输出:{'a': 1, 'b': 2, 'c': 3}
# 过滤出特定条件的键值对
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
filtered_dict = {k: v for k, v in my_dict.items() if v % 2 == 0}
print(filtered_dict) # 输出:{'b': 2, 'd': 4}集合(Sets)
集合是一种无序且不重复的数据类型,可以存储任意类型的元素。集合使用大括号 {} 或 set() 函数来表示。
创建集合
my_set = {1, 2, 3}
print(my_set) # 输出:{1, 2, 3}
# 使用 set() 函数创建集合
my_set = set([1, 2, 3])
print(my_set) # 输出:{1, 2, 3}添加元素
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # 输出:{1, 2, 3, 4}删除元素
使用 remove() 方法
my_set = {1, 2, 3, 4}
my_set.remove(3)
print(my_set) # 输出:{1, 2, 4}使用 discard() 方法
my_set = {1, 2, 3, 4}
my_set.discard(3)
print(my_set) # 输出:{1, 2, 4}集合运算
并集
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
print(union_set) # 输出:{1, 2, 3, 4, 5}交集
set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
print(intersection_set) # 输出:{3}差集
set1 = {1, 2, 3}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
print(difference_set) # 输出:{1, 2}对称差集
set1 = {1, 2, 3}
set2 = {3, 4, 5}
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set) # 输出:{1, 2, 4, 5}集合推导式
# 将列表中的每个元素转换为集合中的元素
numbers = [1, 2, 3, 4, 5]
number_set = {x for x in numbers}
print(number_set) # 输出:{1, 2, 3, 4, 5}
# 过滤出特定条件的元素
number_set = {x for x in range(10) if x % 2 == 0}
print(number_set) # 输出:{0, 2, 4, 6, 8}以上是 Python3 数据结构的详细介绍。希望这些示例和解释能帮助你更好地理解和使用 Python 中的各种数据结构。