Python常用数据结构和公共方法技巧总结

  • Post category:Python

在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去重,并输出去重后的单词数量。