4种非常实用的python内置数据结构

下面是关于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技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • R语言数据结构之矩阵、数组与数据框详解

    R语言数据结构之矩阵、数组与数据框详解 在R语言中,矩阵、数组和数据框是常见的数据结构。本文将从定义、创建、访问和操作等方面详细讲解这些数据结构。 矩阵(matrix) 定义 矩阵是R语言中的一种二维数据结构,所有的元素都必须是同一类型的,并且矩阵中的行列数必须相同。矩阵可以使用matrix函数创建。 创建 # 创建一个3行4列的矩阵,所有元素都为0 mat…

    数据结构 2023年5月17日
    00
  • 数据结构基本概念和术语之位字节、字、位串、元素等

    我们先来一一解释数据结构中的基本概念和术语: 1. 位 位是计算机中的最小存储单位,通常表示二进制0或1。8个位组成了1个字节,常用于表示和处理计算机中的文件、数据、程序等。 2. 字节 字节是计算机中的基本存储单位之一,由8个位组成,通常表示1个英文字符或者1个二进制数。在计算机存储中,通常以字节为单位进行数据的存储与传输。 3. 位串 一个由0或1构成的…

    数据结构 2023年5月17日
    00
  • Redis高效率原因及数据结构分析

    Redis高效率原因及数据结构分析 Redis高效率的原因 Redis是一款高性能、高可靠性的内存数据库,其高效率的原因主要体现在以下几个方面: 1. 内存存储 Redis数据完全存储在内存中,而不是像传统的关系型数据库一样存储在磁盘中。内存的读写速度要远远快于磁盘的读写速度,因此Redis在数据读写时的速度非常快,能够达到每秒钟数百万次的读写操作。 2. …

    数据结构 2023年5月17日
    00
  • MySQL底层数据结构选用B+树的原因

    MySQL底层数据结构选用B+树的原因主要是因为B+树具有以下优点: 能够快速查找B+树的查找速度非常快,时间复杂度为O(log n),在海量数据的环境中,能够快速定位目标数据。因为B+树每次查找只需要遍历树高度的次数,即使数据量很大,树的高度也很小。 能够高效地进行增删改操作B+树的平衡性能够保证树的高度非常小,大部分操作只需要遍历树的高度,而不是整颗树,…

    数据结构 2023年5月17日
    00
  • JS数据结构之队列结构详解

    JS数据结构之队列结构详解 什么是队列结构? 队列结构是一种遵循先进先出(FIFO)原则的线性数据结构,它可以用来存储一系列待处理的数据,其中队首是最先进入队列的元素,队尾是最后进入队列的元素。 在队列中,添加元素的操作叫做enqueue,移除元素的操作叫做dequeue。同时,队列还包括peek方法,查看队列头的元素,以及isEmpty方法,判断队列是否为…

    数据结构 2023年5月17日
    00
  • C++实现LeetCode(211.添加和查找单词-数据结构设计)

    首先,我们需要先了解一下题目的要求和限制,以及具体的解题思路。 题目描述 设计一个支持添加、删除、查找单词的数据结构。添加和删除单词的操作需要支持普通词和通配符’.’。查找单词只支持普通词,不支持通配符’.’。所有单词都是非空的。 解题思路 这道题可以使用前缀树(Trie树)来实现。 首先,我们需要定义一个单词类,它包含两个字段:单词字符串和单词长度。然后,…

    数据结构 2023年5月17日
    00
  • C语言植物大战数据结构快速排序图文示例

    C语言植物大战数据结构的快速排序可以分为以下步骤: 准备工作 首先需要定义一个关于植物大战中植物的结构体,例如: struct Plant { int hp; int atk; int cost; }; 然后准备一个装载植物信息的数组: struct Plant plants[] = { {75, 36, 100}, {100, 20, 50}, {125,…

    数据结构 2023年5月17日
    00
  • Java 超详细讲解数据结构的应用

    Java 超详细讲解数据结构的应用 简介 “Java 超详细讲解数据结构的应用”是一个基于Java语言的数据结构教程,其中包含了各种数据结构的理论知识和实际应用,在学习过程中可以帮助初学者更好地理解数据结构的本质和实际应用场景。 学习路径 数据结构理论 在本教程中,我们首先介绍了数据结构的几种基本分类和常用的数据结构,包括数组、链表、栈、队列、堆、树、图等等…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部