干货:Python中常见的数据结构和同数据有关的算法

1. 前言

Python是一门非常流行的编程语言,提供了多样化的数据结构和算法,让开发人员能够更加高效地完成任务,提高开发效率。本文主要介绍Python中常见的数据结构和与数据结构有关的算法,希望对大家学习Python有所帮助。

2. 列表

2.1 列表概述

列表是Python中最常用的数据结构之一,它可以容纳任意数量的对象,并且可以进行索引、切片、添加、删除等操作。

创建一个列表:

my_list = [1, 2, 3, "hello", "world"]

2.2 列表常用操作

索引:可以使用下标对列表进行索引,下标从0开始。

my_list = [1, 2, 3, "hello", "world"]

print(my_list[0]) # 输出1

切片:可以使用切片对列表进行截取。

my_list = [1, 2, 3, "hello", "world"]

print(my_list[1:3]) # 输出[2, 3]

添加元素:可以使用append()函数向列表添加元素。

my_list = [1, 2, 3, "hello", "world"]

my_list.append("Python")

print(my_list) # 输出[1, 2, 3, 'hello', 'world', 'Python']

删除元素:可以使用del关键字或remove()函数删除元素。

my_list = [1, 2, 3, "hello", "world"]

del my_list[2]

print(my_list) # 输出[1, 2, 'hello', 'world']

my_list.remove("hello")

print(my_list) # 输出[1, 2, 'world']

3. 字典

3.1 字典概述

字典是Python中另一个常用的数据结构,它使用键-值对存储数据,可以进行索引、添加、删除等操作。

创建一个字典:

my_dict = {"name": "Tom", "age": 18, "score": 90}

3.2 字典常用操作

索引:使用键进行索引。

my_dict = {"name": "Tom", "age": 18, "score": 90}

print(my_dict["name"]) # 输出Tom

添加元素:可以使用赋值语句添加元素。

my_dict = {"name": "Tom", "age": 18, "score": 90}

my_dict["gender"] = "male"

print(my_dict) # 输出{'name': 'Tom', 'age': 18, 'score': 90, 'gender': 'male'}

删除元素:可以使用del关键字或pop()函数删除元素。

my_dict = {"name": "Tom", "age": 18, "score": 90}

del my_dict["age"]

print(my_dict) # 输出{'name': 'Tom', 'score': 90}

my_dict.pop("name")

print(my_dict) # 输出{'score': 90}

4. 集合

4.1 集合概述

集合也是一种常用的数据结构,它可以进行交集、并集、差集等操作。

创建一个集合:

my_set = {1, 2, 3, 4, 5}

4.2 集合常用操作

并集:可以使用|符号或union()函数求两个集合的并集。

set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

print(set1 | set2) # 输出{1, 2, 3, 4, 5, 6, 7, 8}

交集:可以使用&符号或intersection()函数求两个集合的交集。

set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

print(set1 & set2) # 输出{4, 5}

差集:可以使用-符号或difference()函数求两个集合的差集。

set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

print(set1 - set2) # 输出{1, 2, 3}

5. 排序算法

5.1 冒泡排序

冒泡排序是一种常见的排序算法,它的基本思想是不断地比较相邻的两个元素,如果它们的顺序不对就交换它们。

def bubble_sort(arr):

n = len(arr)

for i in range(n - 1):

for j in range(n - i - 1):

if arr[j] > arr[j + 1]:

arr[j], arr[j + 1] = arr[j + 1], arr[j]

arr = [64, 34, 25, 12, 22, 11, 90]

bubble_sort(arr)

print("排序后的数组:")

print(arr)

输出结果:

排序后的数组:

[11, 12, 22, 25, 34, 64, 90]

5.2 快速排序

快速排序是一种常用的排序算法,它的基本思想是选择一个基准元素,将数组分成左右两部分,左边的元素都小于基准元素,右边的元素都大于基准元素,然后递归地对左右两部分进行排序。

def quick_sort(arr):

if len(arr) <= 1:

return arr

else:

pivot = arr[0]

left = [x for x in arr[1:] if x < pivot]

right = [x for x in arr[1:] if x >= pivot]

return quick_sort(left) + [pivot] + quick_sort(right)

arr = [64, 34, 25, 12, 22, 11, 90]

arr = quick_sort(arr)

print("排序后的数组:")

print(arr)

输出结果:

排序后的数组:

[11, 12, 22, 25, 34, 64, 90]

6. 总结

本文主要介绍了Python中常见的数据结构和与数据结构有关的算法,包括列表、字典、集合、冒泡排序和快速排序。掌握这些基本的数据结构和算法可以让开发人员更加高效地完成任务。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签