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日

相关文章

  • Android开发数据结构算法ArrayList源码详解

    Android开发数据结构算法ArrayList源码详解 概述 Android开发中,大量使用到了数据结构和算法,ArrayList便是其中的一种非常重要的数据结构。ArrayList是Java中非常重要且使用率非常高的一种数据结构,Android开发中也经常使用它来存储数据。本文将深入探究ArrayList的源码,帮助读者更好地理解其工作原理和使用方法。 …

    数据结构 2023年5月17日
    00
  • F – 产生冠军(不使用拓扑排序)

    题目描述 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之…

    算法与数据结构 2023年4月17日
    00
  • JavaScript数据结构与算法之链表

    JavaScript数据结构与算法之链表 什么是链表 链表是一种线性数据结构,它由一个一个的节点组成,每个节点包含两个部分:当前节点存储的数据,以及指向下一个节点的指针。相比于数组,链表可以实现更加灵活的内存分配,可以动态增加或删除节点,但访问链表中的节点比访问数组要慢。 单向链表 单向链表是最简单的一种链表,它每个节点只有一个指针,指向它的下一个节点。单向…

    数据结构 2023年5月17日
    00
  • Java数据结构最清晰图解二叉树前 中 后序遍历

    Java数据结构最清晰图解二叉树前 中 后序遍历 前言 二叉树是数据结构中至关重要的一种数据结构,对于计算机科学的学习和工作都是至关重要的。而遍历二叉树是二叉树的重要操作之一。 为了帮助读者更好地理解二叉树前、中、后序遍历的过程,本文介绍 Java 数据结构中最清晰的图解二叉树前、中、后序遍历攻略。 什么是二叉树? 二叉树是一种非常重要的数据结构,它由根节点…

    数据结构 2023年5月17日
    00
  • python数据结构之二叉树的统计与转换实例

    下面是针对“python数据结构之二叉树的统计与转换实例”的详细讲解攻略: 什么是二叉树 二叉树指的是一种树状结构,具有如下特点: 每个节点最多有两个子节点,分别为左子节点和右子节点 左子节点的值比父节点小,右子节点的值比父节点大 二叉树可以是空树,也可以是非空树。 二叉树的遍历 在对二叉树进行操作时,需要对其节点进行遍历。二叉树的遍历方式一般有以下三种: …

    数据结构 2023年5月17日
    00
  • C++深入浅出探索数据结构的原理

    标题:C++深入浅出探索数据结构的原理攻略 介绍 《C++深入浅出探索数据结构的原理》是一本深入讲解C++数据结构的书籍。在本攻略中,我们将介绍该书的主要内容和要点,以及学习该书的步骤和建议。 内容 该书分为三个部分,分别是数据结构的基础、线性表和树。 数据结构的基础 第一部分主要讲解数据结构的基础知识,包括算法分析、时间复杂度和空间复杂度等。这一部分对于初…

    数据结构 2023年5月17日
    00
  • c++ 数据结构map的使用详解

    c++ 数据结构map的使用详解 什么是map map是C++ STL中提供的一种用以存储键值对(key-value)的容器。它能够以平均O(log n)复杂度进行搜索、插入、删除操作,并且保持元素顺序,是一种比较高效的数据结构。 map的基本用法 定义map 定义map需要包含头文件<map>。 语法:map<key_type, valu…

    数据结构 2023年5月17日
    00
  • C#数据结构揭秘一

    C#数据结构揭秘一攻略 C#数据结构是每个C#程序员必须熟练掌握的技能之一。本攻略将介绍常见的C#数据结构,包括数组、列表、栈、队列、散列表和字典。我们将会深入了解它们的特点、使用场景和使用方法,并附带代码示例加深理解。 数组 数组是存储单一类型元素的固定大小的集合结构。在C#中,可以使用以下方式声明和初始化一个数组: int[] nums1 = new i…

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