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

yizhihongxing

下面是关于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日

相关文章

  • 「学习笔记」二分图

    「学习笔记」二分图 点击查看目录 目录 「学习笔记」二分图 知识点 定义及判定 二分图最大匹配 二分图最小点覆盖 二分图最大独立集 例题 P7368 [USACO05NOV]Asteroids G 思路 P2319 [HNOI2006]超级英雄 思路 Way Selection 题意 思路 文理分班 题意 思路 放置机器人 题意 思路 猫和狗 题意 思路 知…

    算法与数据结构 2023年4月18日
    00
  • python数据结构学习之实现线性表的顺序

    下面我来详细讲解一下“python数据结构学习之实现线性表的顺序”的完整攻略。 一、线性表的概念介绍 线性表是最基本、最常用的一种数据结构。线性表是由同类型的数据元素构成有序序列的抽象,常用的线性表有顺序表和链表两种结构。 顺序表就是用一段连续的物理空间依次存储一组类型相同的数据元素,同时在存储空间中,逻辑上相邻的两个元素,物理位置也相邻。 二、实现顺序表的…

    数据结构 2023年5月17日
    00
  • Golang实现数据结构Stack(堆栈)的示例详解

    Golang实现数据结构Stack(堆栈)的示例详解 什么是Stack? Stack,也称为堆栈,是一种先进后出(Last In First Out, LIFO)的数据结构。举个例子,比如一堆书,你按照一定的顺序叠起来,然后你想要拿出第一本,你需要先拿掉上面的书才能取到下面的。这就是典型的堆栈模型。 在编程中,Stack也是一种非常常见的数据结构,特别是在函…

    数据结构 2023年5月17日
    00
  • 回溯理论基础及leetcode例题

    学习参考 回溯 与递归相辅相成;回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。 回溯搜索法 纯暴力搜索解决的问题 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式(与组合差别,排列有元…

    算法与数据结构 2023年4月17日
    00
  • python算法与数据结构朋友圈与水杯实验题分析实例

    让我来详细讲解一下“python算法与数据结构朋友圈与水杯实验题分析实例”的完整攻略。 1. 前言 本文将分享两个Python的算法与数据结构问题,即朋友圈和水杯实验题。我们将分别介绍问题的背景、解题思路和代码实现。 2. 朋友圈问题 2.1 背景 给定一个M*N的矩阵,矩阵中的每个元素都是1或0。如果矩阵中的1元素相邻,即水平、垂直或对角线相邻,则将这些元…

    数据结构 2023年5月17日
    00
  • C语言 结构体数组详解及示例代码

    C语言 结构体数组详解及示例代码 结构体是C语言中最为基础的数据结构之一,它可以将多个数据类型组合成一个整体,方便地进行访问和管理。而结构体数组则是将多个相同结构体类型的变量按照一定规律排列在一起的一种数据结构。本文将详细讲解C语言中结构体数组的使用方法及示例代码。 定义结构体 首先,我们需要定义一个结构体类型。结构体类型需要指定名称、成员变量及其数据类型:…

    数据结构 2023年5月17日
    00
  • Python数据结构之Array用法实例

    Python数据结构之Array用法实例 在Python中,Array是一种很有用的数据结构类型。它可以通过简单的方式存储一系列数据,提供快速的索引访问和高效的操作。本文将详细探讨Python中Array的用法,包括创建Array、插入、删除、修改、查找和遍历等。 创建Array 要创建一个Array,需要使用array模块。在调用前,需要首先导入该模块。A…

    数据结构 2023年5月17日
    00
  • 莫比乌斯反演,欧拉反演学习笔记

    (未更完) 我算法中也就差点数论没学了,这几周卷了,学了一下,分享一下啊。 我会讲得详细一点,关于我不懂得地方,让新手更容易理解。 学习反演有很多定义啥的必须要记的,学的时候容易崩溃,所以希望大家能坚持下来。   第一个定义: $\lfloor x\rfloor$:意思是小于等于 $x$ 的最大整数。 数论分块 学习反演之前,要先学习一些边角料,先来看数论分…

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