python自学成才之路 列表,元组,集合详细用法

2024-06-22 19:18

本文主要是介绍python自学成才之路 列表,元组,集合详细用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 列表简介
    • 列表crud操作
      • 创建列表
      • 访问列表元素
        • 1.通过索引访问列表元素
        • 2.通过for循环遍历列表
        • 3.判断列表中是否存在某个元素
      • 修改列表元素
      • 添加元素
        • 1.通过append向列表末尾添加元素
        • 2.通过insert方法向指定位置添加元素
      • 删除元素
        • 1.使用del删除指定位置元素
        • 2.使用pop删除末尾元素
        • 3.使用pop弹出指定位置的元素
        • 4.根据值使用remove删除元素
    • 列表排序
      • 1.列表永久排序,使用sort默认按照首字母升序排序
      • 2.传递reverse=True参数,按照首字母降序排序
      • 3.使用sorted对列表临时排序
      • 4.反转列表
    • 数值列表
      • 使用range创建数值列表
      • 列表解析
    • 切片
    • 元组
      • 元组打包和解包
    • 集合
      • 差集
      • 并集
      • 交集
      • 并集外的元素

列表简介

python列表使用[]表示,它实际上是一个数组,但是和一般数组不同的地方在于它内部封装了很多很好用的方法(比如append,pop)以及一些特性(比如切片,不可变列表元组),下面来一层层揭开python列表的面纱。

列表crud操作

创建列表

使用[]创建列表并初始化列表

names = ['Jane', 'Peter', 'Bob', 'Tom', 'Kyo']
print(names)
输出:
['Jane', 'Peter', 'Bob', 'Tom', 'Kyo']

访问列表元素

1.通过索引访问列表元素
print(names[0])
print(names[-1])  # 访问最后一个元素
print(names[-2])  # 访问倒数第二个元素
2.通过for循环遍历列表
for name in names:print(name)
3.判断列表中是否存在某个元素
if 'peter' in names:print('yes')

修改列表元素

print(names)
names[0] = 'Mike'
print(names)
输出:
['Jane', 'Peter', 'Bob', 'Tom', 'Kyo']
['Mike', 'Peter', 'Bob', 'Tom', 'Kyo']

添加元素

1.通过append向列表末尾添加元素
names.append('Jimmy')
2.通过insert方法向指定位置添加元素

这种方法会导致该元素后的所有元素向后移动一位

names.insert(3, 'kate')

删除元素

1.使用del删除指定位置元素
del names[0]
2.使用pop删除末尾元素
name = names.pop()
print(name)
3.使用pop弹出指定位置的元素
name = names.pop(3)
print(name)
4.根据值使用remove删除元素

注意根据值删除元素,如果存在多个相同的值,只会删除第一个,如果想要全部删除需要进行遍历。

names.remove('kate')
#遍历删除元素
names = ['peter','jane','Bob','peter','david','jack']
for name in names:if name == 'peter':names.remove(name)
print(names)
输出
['jane', 'Bob', 'david', 'jack']

列表排序

1.列表永久排序,使用sort默认按照首字母升序排序

print(names)
names.sort()
print(names)
输出:
['Peter', 'Bob', 'Kyo']
['Bob', 'Kyo', 'Peter']

2.传递reverse=True参数,按照首字母降序排序

print(names)
names.sort(reverse=True)
print(names)
输出:
['Bob', 'Kyo', 'Peter']
['Peter', 'Kyo', 'Bob']

3.使用sorted对列表临时排序

print(names)
print(sorted(names, reverse=True))
print(names)
输出:
['Peter', 'Kyo', 'Bob']
['Bob', 'Kyo', 'Peter']
['Peter', 'Kyo', 'Bob']

4.反转列表

使用reverse()方法反转列表,这个方法只反转列表,不对列表做排序操作。

print(names)
names.reverse()
print(names)
输出:
['Peter', 'Kyo', 'Bob']
['Bob', 'Kyo', 'Peter']

数值列表

使用range创建数值列表

1.注意使用range函数只包含起始值不包含末尾值

# 创建1~9的数组
data = range(1, 10)

2.创建数值列表时设置步长

# 创建[2,4,6,8]的列表
data = range(0, 10, 2)

3.结合range创建1~10平方数数值列表

squares = []
for value in range(1, 11, 2):squares.append(value**2)

4.max求数值列表最大值

print(max(squares))

5.min求数值列表最小值

print(min(squares))

6.sum求数值列表和

print(sum(squares))

列表解析

使用列表解析实现一行代码创建数值列表

squares = [value ** 2 for value in range(1, 11, 2)]
等价于
squares = []
for value in range(1, 11, 2):squares.append(value**2)

切片

切片,即通过起始和结束索引来截取列表的一部分,使用切片的时候会包含起始值不包含末尾值。
1.输出索引为0,1的两个元素

print(names[0:2])

2.输出第一个到底倒数第三个元素

print(names[0:-2])

3.如果没有指定起始索引,默认从0开始

print(names[:-2])

4.如果没有指定末尾索引,默认切片为起始索引到后面所有元素

print(names[0:])

5.输出倒数第二个元素到最后一个元素

print(names[-2:])

6.通过切片的方式实现复制操作

names2 = names[:]
names2.append('sum')
print(names)
print(names2)
输出:
['Bob', 'Kyo', 'Peter']
['Bob', 'Kyo', 'Peter', 'sum']

元组

元组是不可变的列表,在表现形式上和列表不同,列表使用[]来表示,元组使用()来表示。

tupleTest = (1, 3, 4)

虽然元组不可变,但是元组里面的单个元素却是可变的,比如像下面的这个元组,里面的元素都是列表,可以随意改变其中某个列表中元素的值。

tupleTest = ([1, 2, 3], [4, 5, 6])
print(tupleTest)
tupleTest[0][1] = 3
print(tupleTest)
输出:
([1, 2, 3], [4, 5, 6])
([1, 3, 3], [4, 5, 6])

元组打包和解包

给元组赋值时可以不用加上(),程序自身会自动做打包操作

t = 1, 2, 3
print(t)
输出:
(1, 2, 3)

元组也支持解包操作

x, y, z = t
print("x = " + str(x) + ', y = ' + str(y) + ', z' + str(z))
输出:
x = 1, y = 2, z = 3

集合

集合指的是set集合,他是一种特殊的列表,set集合会对内部的元素做去重处理,也就是set集合不会有重复元素,set集合使用{}表示,为了和字典区分空的set集合只能使用set()来表示。

basket = {'orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'}
print(basket)
输出:
{'kiwi', 'banana', 'orange', 'pear', 'apple'}

空的set集合使用set()来表示

basket = set()
basket.add('apple')
basket.add('banana')
basket.add('pear')
basket.add('orange')
basket.add('apple')
basket.add('orange')
print(basket)
输出:
{'banana', 'orange', 'pear', 'apple'}

set集合还支持一些数学上的集合运算

a = set('abracadabra')
print(a)
b = set('alacazam')
print(b)
输出:
{'r', 'd', 'c', 'a', 'b'}
{'m', 'c', 'a', 'z', 'l'}

差集

a - b : 返回a中有b中没有的元素

print(a-b)
输出:
{'b', 'r', 'd'}

并集

a | b : 返回a,b的并集

print(a|b)
输出:
{'r', 'm', 'd', 'c', 'a', 'b', 'z', 'l'}

交集

a & b : 返回a,b的交集

print(a&b)
输出:
{'c', 'a'}

并集外的元素

a^b 返回两个集合并集外的元素

print(a^b)
输出:
{'b', 'r', 'm', 'z', 'd', 'l'}

这篇关于python自学成才之路 列表,元组,集合详细用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085177

相关文章

如何将Python彻底卸载的三种方法

《如何将Python彻底卸载的三种方法》通常我们在一些软件的使用上有碰壁,第一反应就是卸载重装,所以有小伙伴就问我Python怎么卸载才能彻底卸载干净,今天这篇文章,小编就来教大家如何彻底卸载Pyth... 目录软件卸载①方法:②方法:③方法:清理相关文件夹软件卸载①方法:首先,在安装python时,下

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

python3 gunicorn配置文件的用法解读

《python3gunicorn配置文件的用法解读》:本文主要介绍python3gunicorn配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python3 gunicorn配置文件配置文件服务启动、重启、关闭启动重启关闭总结python3 gun

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Python中局部变量和全局变量举例详解

《Python中局部变量和全局变量举例详解》:本文主要介绍如何通过一个简单的Python代码示例来解释命名空间和作用域的概念,它详细说明了内置名称、全局名称、局部名称以及它们之间的查找顺序,文中通... 目录引入例子拆解源码运行结果如下图代码解析 python3命名空间和作用域命名空间命名空间查找顺序命名空

C#中DrawCurve的用法小结

《C#中DrawCurve的用法小结》本文主要介绍了C#中DrawCurve的用法小结,通常用于绘制一条平滑的曲线通过一系列给定的点,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 如何使用 DrawCurve 方法(不带弯曲程度)2. 如何使用 DrawCurve 方法(带弯曲程度)3.使用Dr

Python如何将大TXT文件分割成4KB小文件

《Python如何将大TXT文件分割成4KB小文件》处理大文本文件是程序员经常遇到的挑战,特别是当我们需要把一个几百MB甚至几个GB的TXT文件分割成小块时,下面我们来聊聊如何用Python自动完成这... 目录为什么需要分割TXT文件基础版:按行分割进阶版:精确控制文件大小完美解决方案:支持UTF-8编码

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2