下面是关于4种非常实用的Python内置数据结构的详细讲解。
1. List(列表)
列表是Python中最常用的数据结构之一。它可以用来存储有序的数据集合,并且可以通过索引访问其中的元素。
创建列表
要创建一个列表,可以使用方括号[]
将元素括起来,用逗号,
分隔。例如:
fruits = ['apple', 'banana', 'orange']
访问列表元素
可以使用索引来访问列表中的元素。Python中的索引从0开始,因此第一个元素的索引是0,第二个元素的索引是1,依此类推。例如:
print(fruits[0]) # 输出: apple
print(fruits[1]) # 输出: banana
print(fruits[2]) # 输出: orange
列表操作
列表可以进行许多操作,如添加元素、删除元素、修改元素、排序和反转等。
添加元素
可以使用append()
方法在列表的末尾添加新元素。例如:
fruits.append('watermelon')
print(fruits) # 输出: ['apple', 'banana', 'orange', 'watermelon']
还可以使用insert()
方法在指定位置添加新元素。例如:
fruits.insert(1, 'grape')
print(fruits) # 输出: ['apple', 'grape', 'banana', 'orange', 'watermelon']
删除元素
可以使用remove()
方法删除指定元素。例如:
fruits.remove('orange')
print(fruits) # 输出: ['apple', 'grape', 'banana', 'watermelon']
还可以使用pop()
方法删除指定位置的元素。例如:
fruits.pop(1)
print(fruits) # 输出: ['apple', 'banana', 'watermelon']
修改元素
可以直接通过索引修改元素。例如:
fruits[1] = 'kiwi'
print(fruits) # 输出: ['apple', 'kiwi', 'watermelon']
排序和反转
可以使用sort()
方法对列表进行排序。例如:
numbers = [4, 1, 3, 2]
numbers.sort()
print(numbers) # 输出: [1, 2, 3, 4]
还可以使用reverse()
方法将列表反转。例如:
numbers.reverse()
print(numbers) # 输出: [4, 3, 2, 1]
2. Tuple(元组)
元组和列表非常类似,但是它们是不可变的。也就是说,一旦创建了元组,就无法对其进行修改。元组使用小括号()
表示。
创建元组
要创建一个元组,可以使用小括号()
将元素括起来,用逗号,
分隔。例如:
colors = ('red', 'green', 'blue')
访问元组元素
可以使用索引来访问元组中的元素。例如:
print(colors[0]) # 输出: red
print(colors[1]) # 输出: green
print(colors[2]) # 输出: blue
元组操作
由于元组是不可变的,在创建后就无法进行修改操作,但是仍然可以进行许多有用的操作。
元组拆包
可以使用元组拆包将元组的元素分配给多个变量。例如:
x, y, z = colors
print(x) # 输出: red
print(y) # 输出: green
print(z) # 输出: blue
元组合并
可以使用+
运算符将多个元组合并成一个新的元组。例如:
fruits = ('apple', 'banana')
colors = ('red', 'green', 'blue')
shopping_list = fruits + colors
print(shopping_list) # 输出: ('apple', 'banana', 'red', 'green', 'blue')
元组复制
由于元组是不可变的,因此可以使用元组复制创建新的元组,并且两者不相互影响。例如:
fruits_copy = fruits[:]
print(fruits_copy) # 输出: ('apple', 'banana')
3. Set(集合)
集合是一种无序的数据集合,其中不存在重复的元素。集合使用大括号{}
表示。
创建集合
要创建一个集合,可以使用大括号{}
将元素括起来,用逗号,
分隔。例如:
fruits = {'apple', 'banana', 'orange'}
还可以使用set()
函数从其他数据结构(如列表或元组)创建集合。例如:
numbers = [1, 2, 2, 3, 3, 4]
unique_numbers = set(numbers)
print(unique_numbers) # 输出: {1, 2, 3, 4}
访问集合元素
由于集合是无序的,因此无法使用索引访问集合中的元素。但是可以使用in
关键字检查集合中是否存在指定元素。例如:
print('orange' in fruits) # 输出: True
print('watermelon' in fruits) # 输出: False
集合操作
可以对集合进行许多操作,如添加元素、删除元素、求并集、求交集和求差集等。
添加元素
可以使用add()
方法在集合中添加新元素。例如:
fruits.add('watermelon')
print(fruits) # 输出: {'apple', 'banana', 'orange', 'watermelon'}
还可以使用update()
方法将多个元素添加到集合中。例如:
fruits.update(['kiwi', 'grape'])
print(fruits) # 输出: {'apple', 'banana', 'orange', 'kiwi', 'grape', 'watermelon'}
删除元素
可以使用remove()
方法删除指定元素。例如:
fruits.remove('orange')
print(fruits) # 输出: {'apple', 'banana', 'kiwi', 'grape', 'watermelon'}
还可以使用discard()
方法删除指定元素,但是如果元素不存在,discard()
方法不会抛出异常。例如:
fruits.discard('orange')
print(fruits) # 输出: {'apple', 'banana', 'kiwi', 'grape', 'watermelon'}
集合运算
可以使用|
运算符求两个集合的并集。例如:
colors = {'red', 'green', 'blue'}
all_items = fruits | colors
print(all_items) # 输出: {'apple', 'banana', 'kiwi', 'grape', 'watermelon', 'red', 'green', 'blue'}
可以使用&
运算符求两个集合的交集。例如:
common_items = fruits & colors
print(common_items) # 输出: set()
可以使用-
运算符求两个集合的差集。例如:
fruits_only = fruits - colors
print(fruits_only) # 输出: {'apple', 'banana', 'kiwi', 'watermelon', 'grape'}
4. Dictionary(字典)
字典是一种无序的键-值数据集合。可以使用键来访问对应的值,但是不能使用索引访问。字典使用花括号{}
表示,每个键值对使用冒号:
分隔。
创建字典
要创建一个字典,可以使用花括号{}
将键值对括起来,用逗号,
分隔。例如:
person = {'name': 'Alice', 'age': 21, 'occupation': 'student'}
也可以使用dict()
函数从其他数据结构(如元组)创建字典。例如:
person_tuple = ('Alice', 21, 'student')
person = dict(name=person_tuple[0], age=person_tuple[1], occupation=person_tuple[2])
print(person) # 输出: {'name': 'Alice', 'age': 21, 'occupation': 'student'}
访问字典元素
可以使用键来访问对应的值。例如:
print(person['name']) # 输出: Alice
print(person['age']) # 输出: 21
print(person['occupation']) # 输出: student
如果访问不存在的键,则会抛出KeyError
异常。例如:
print(person['address']) # 抛出KeyError异常
可以使用get()
方法获取对应键的值,如果键不存在,则返回指定默认值。例如:
print(person.get('address', 'unknown')) # 输出: unknown
字典操作
字典可以进行许多操作,如添加键值对、删除键值对、修改值等。
添加键值对
可以使用索引添加新键值对。例如:
person['email'] = 'alice@example.com'
print(person) # 输出: {'name': 'Alice', 'age': 21, 'occupation': 'student', 'email': 'alice@example.com'}
删除键值对
可以使用del
语句删除指定键值对。例如:
del person['occupation']
print(person) # 输出: {'name': 'Alice', 'age': 21, 'email': 'alice@example.com'}
修改值
可以直接使用索引修改值。例如:
person['email'] = 'alice@gmail.com'
print(person) # 输出: {'name': 'Alice', 'age': 21, 'email': 'alice@gmail.com'}
示例说明
示例1:使用列表存储学生成绩信息并计算平均分
scores = [98, 87, 92, 76, 84]
average = sum(scores) / len(scores)
print('Average score:', average)
输出结果:
Average score: 87.4
在上面的示例中,首先创建了一个包含5个成绩的列表,然后使用sum()
函数和len()
函数计算成绩的总和和平均值,并将结果输出。
示例2:使用字典存储学生信息并输出姓名和其对应的年龄
students = {'Alice': 21, 'Bob': 22, 'Charlie': 20}
for name, age in students.items():
print(name, 'is', age, 'years old')
输出结果:
Alice is 21 years old
Bob is 22 years old
Charlie is 20 years old
在上面的示例中,首先创建了一个包含学生姓名和对应年龄的字典,然后使用items()
方法遍历字典,并输出学生姓名和对应的年龄。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:4种非常实用的python内置数据结构 - Python技术站