在Python中,常用的数据结构包括列表、元组、字典和集合。这些数据结构都有一些公共的方法和技巧,可以帮助我们更加高效地处理数据。下面我们将详细讲解Python常用数据结构和公共方法技巧总结,并提供两个示例说明。
列表
创建列表
在Python中,我们可以使用方括号[]
来创建一个空列表,也可以在方括号中添加元素来创建一个非空列表。例如:
empty_list = []
number_list = [1, 2, 3, 4, 5]
string_list = ['apple', 'banana', 'cherry']
mixed_list = [1, 'apple', 3.14, True]
访问列表元素
在Python中,我们可以使用索引来访问列表中的元素。列表的索引从0开始,因此第一个元素的索引为0,第二个元素的索引为1,以此类推。例如:
number_list = [1, 2, 3, 4, 5]
print(number_list[0]) # 输出1
print(number_list[2]) # 输出3
我们还可以使用负数索引来访问列表中的元素。负数索引从列表的末尾开始,因此最后一个元素的索引为-1,倒数第二个元素的索引为-2,以此类推。例如:
string_list = ['apple', 'banana', 'cherry']
print(string_list[-1]) # 输出'cherry'
print(string_list[-2]) # 输出'banana'
修改列表元素
在Python中,我们可以使用索引来修改列表中的元素。例如:
number_list = [1, 2, 3, 4, 5]
number_list[2] = 6
print(number_list) # 输出[1, 2, 6, 4, 5]
添加元素
在Python中,我们可以使用append()
方法向列表末尾添加一个元素。例如:
number_list = [1, 2, 3, 4, 5]
number_list.append(6)
print(number_list) # 输出[1, 2, 3, 4, 5, 6]
我们还可以使用insert()
方法在列表的任意位置添加一个元素。例如:
number_list = [1, 2, 3, 4, 5]
number_list.insert(2, 6)
print(number_list) # 输出[1, 2, 6, 3, 4, 5]
删除元素
在Python中,可以使用del
语句或remove()
方法来删除列表中的元素。例如:
number_list = [1, 2, 3, 4, 5]
del number_list[2]
print(number_list) # 输出[1, 2, 4, 5]
string_list = ['apple', 'banana', 'cherry']
string_list.remove('banana')
print(string_list) # 输出['apple', 'cherry']
列表切片
在Python中,我们可以使用切片来访问列表的子集。切片使用冒号:
来分隔起始索引和结束索引。例如:
number_list = [1, 2, 3, 4, 5]
print(number_list[1:3]) # 输出[2, 3]
元组
创建元组
在Python中,我们可以使用圆括号()
来创建一个元组。例如:
empty_tuple = ()
number_tuple = (1, 2, 3, 4, 5)
string_tuple = ('apple', 'banana', 'cherry')
mixed_tuple = (1, 'apple', 3.14, True)
访问元组元素
在Python中,我们可以使用索引来访问元组中的元素。元组的索引从0开始,因此第一个元素的索引为0,第二个元素的索引为1,以此类推。例如:
number_tuple = (1, 2, 3, 4, 5)
print(number_tuple[0]) # 输出1
print(number_tuple[2]) # 输出3
我们还可以使用负数索引来访问元组中的元素。负数索引从元组的末尾开始,因此最后一个元素的索引为-1,倒数第二个元素的索引为-2,以此类推。例如:
string_tuple = ('apple', 'banana', 'cherry')
print(string_tuple[-1]) # 输出'cherry'
print(string_tuple[-2]) # 输出'banana'
修改元组元素
在Python中,元组是不可变的,因此我们不能修改元组中的元素。例如:
number_tuple = (1, 2, 3, 4, 5)
number_tuple[2] = 6 # 报错:'tuple' object does not support item assignment
元组切片
在Python中,我们可以使用切片来访问元组的子集。切片使用冒号:
来分隔起始索引和结束索引。例如:
number_tuple = (1, 2, 3, 4, 5)
print(number_tuple[1:3]) # 输出(2, 3)
字典
创建字典
在Python中,我们可以使用花括号{}
来创建一个空字典,也可以在花括号中添加键值对来创建一个非空字典。例如:
empty_dict = {}
fruit_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
mixed_dict = {'apple': 1, 'banana': 'two', 'cherry': 3.14}
访问字典元素
在Python中,我们可以使用键来访问字典中的元素。例如:
fruit_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
print(fruit_dict['apple']) # 输出1
print(fruit_dict['cherry']) # 输出3
如果我们使用一个不存在的键来访问字典中的元素,Python会抛出一个KeyError
异常。例如:
fruit_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
print(fruit_dict['orange']) # 抛出KeyError异常
修改字典元素
在Python中,我们可以使用键来修改字典中的元素。例如:
fruit_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
fruit_dict['banana'] = 4
print(fruit_dict) # 输出{'apple': 1, 'banana': 4, 'cherry': 3}
添加字典元素
在Python中,我们可以使用键来添加字典中的元素。例如:
fruit_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
fruit_dict['orange'] = 4
print(fruit_dict) # 输出{'apple': 1, 'banana': 2, 'cherry': 3, 'orange': 4}
删除字典元素
在Python中,我们可以使用del
语句或pop()
方法来删除字典中的元素。例如:
fruit_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
del fruit_dict['banana']
print(fruit_dict) # 输出{'apple': 1, 'cherry': 3}
fruit_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
fruit_dict.pop('banana')
print(fruit_dict) # 输出{'apple': 1, 'cherry': 3}
集合
创建集合
在Python中,我们可以使用花括号{}
或set()
函数来创建一个空集合,也可以在花括号或set()
函数中添加元素来创建一个非空集合。例如:
empty_set = set()
fruit_set = {'apple', 'banana', 'cherry'}
mixed_set = {1, 'apple', 3.14, True}
访问集合元素
在Python中,我们不能使用索引来访问集合中的元素,因为集合是无序的。我们可以使用in
关键字来检查一个元素是否在集合中。例如:
fruit_set = {'apple', 'banana', 'cherry'}
print('apple' in fruit_set) # 输出True
print('orange' in fruit_set) # 输出False
添加集合元素
在Python中,我们可以使用add()
方法向集合中添加一个元素。例如:
fruit_set = {'apple', 'banana', 'cherry'}
fruit_set.add('orange')
print(fruit_set) # 输出{'apple', 'banana', 'cherry', 'orange'}
删除集合元素
在Python中,我们可以使用remove()
方法或discard()
方法来删除集合中的元素。如果我们使用remove()
方法删除一个不存在的元素,Python会抛出一个KeyError
异常。如果我们使用discard()
方法删除一个不存在的元素,Python不会抛出异常。例如:
fruit_set = {'apple', 'banana', 'cherry'}
fruit_set.remove('banana')
print(fruit_set) # 输出{'apple', 'cherry'}
fruit_set = {'apple', 'banana', 'cherry'}
fruit_set.discard('orange')
print(fruit_set) # 输出{'apple', 'banana', 'cherry'}
示例说明
下面是一个示例,演示了如何使用字典来存储和操作学生的信息:
students = {}
while True:
name = input('请输入学生姓名(输入q结束):')
if name == 'q':
break
age = int(input('请输入学生年龄:'))
score = int(input('请输入学生成绩:'))
student = {'age': age, 'score': score}
students[name] = student
for name, student in students.items():
print('姓名:{},年龄:{},成绩:{}'.format(name, student['age'], student['score']))
在这个示例中,我们使用一个空字典students
来存储学生的信息。然后,我们使用一个循环来读取输入的学生信息,并将其添加到students
字典中。最后,我们遍历students
字典,并输出每个学生的姓名、年龄和成绩。
下面是另一个示例,演示了如何使用集合来实现一个简单的去重程序:
# 读取文件中的单词
with open('words.txt', 'r') as f:
words = f.read().split()
# 使用集合去重
unique_words = set(words)
# 输出去重后的单词数量
print('去重后的单词数量为:', len(unique_words))
在这个示例中,我们首先使用open()
函数读取一个文件中的单词,并将其存储在一个列表words
中。然后,我们使用集合unique_words
去重,并输出去重后的单词数量。