Python——列表排序和赋值

news2025/1/12 18:49:10
(1)列表排序:

列表排序方法
ls.sort()

对列表ls 中的数据在原地进行排序
ls = [13, 5, 73, 4, 9]
ls.sort()

在这里插入图片描述

ls.sort(reverse=False)

默认升序,reverse=True,降序
ls = [13, 5, 73, 4, 9]
ls.sort(reverse=True)

key指定排序时应用到每个参与排序元素上的规则
不影响列表中元素的值
ls.sort(key=None)

ls = ['73', '13', '9', '5', '04']
ls.sort()
ls.sort(key=int)
元素转整型做排序依据

在这里插入图片描述

默认升序,reverse=True,降序
ls.sort(key=None)

ls = ['app', 'Apple', 'at', 'AM']
ls.sort()
ls.sort(key=len)
ls.sort(key=str.lower)
print(ls)

依据元素长度排序
依据元素小写字母

在这里插入图片描述

ls.reverse()
不比较元素大小,直接将列表ls中的元素逆序

my_list = ['12', '13', '14', '23']
my_list.reverse()
print(my_list)

在这里插入图片描述

内置排序函数
sorted(iterable)
reversed(seq)
创建新的排序或逆序对象
不改变列表中的原始数据的顺序
ls.sort(*, key=None, reverse=False)
ls.reverse()
不创建新对象,原地操作,无返回值

(2)内置排序函数

sorted(iterable,*, key=None, reverse=False)
根据可迭代对象参数iterable,返回一个新的排序后的列表
支持排序关键字参数key和反转参数reverse
返回值是排序后的列表

ls = [13, 5, 73, 4, 9]  
ls_sort = sorted(ls)

在这里插入图片描述

sorted(iterable)
参数不限于列表
可为字符串等可迭代对象

s = 'Python'
ls_sort = sorted(s, reverse=True)

在这里插入图片描述

reversed(seq)
返回一个将序列seq中的元素顺序反转的迭代器对象
用list()转为列表再查看反转结果

ls = ['73', '9', '13', '04']
ls1 = reversed(ls)
ls2 = list(ls1)
<list_reverseiterator object at 
0x0000022FC67A7040>

在这里插入图片描述

(3)列表的赋值与复制

1.赋值:
new = ls,对象的引用

  1. 浅拷贝:
    list.copy(),ls[:]拷贝父对象,不拷贝内部子对象
  1. 深拷贝:
    copy.deepcopy(ls),完全拷贝父对象和子对象

赋值
将列表直接赋值给另一个变量时,不产生新对象
一个列表对象两个标签

ls = [1, 2, 3]
new = ls
ls.append(4)

在这里插入图片描述

拷贝父对象,不拷贝内部子对象
原列表父对象更新不影响新列表
原列表可变类型元素更新影响新列表
list.copy()
ls[:]

ls = [2, [22, 33], ('a', 'c')]
ls2 = ls.copy()# 浅复制ls.append(4)# 只改
变原列表
ls[1].append(44)# 同时改变两个列表

在这里插入图片描述

递归拷贝到底的叫深拷贝
拷贝结果完全独立于原对象
原列表可变类型元素更新不影响新列表
copy.deepcopy(ls)

ls = [2, [22, 33], ('a', 'c')]
ls2 = copy.deepcopy(ls)  # 深复制
ls.append(4)  # 只改变原列表
ls[1].append(44)  # 只改变原列表
print(ls2)

(4)推导式

推导式又称解析式
从一个序列构建另一个新序列
一种集成了变换和筛选功能的函数

列表推导式
[x表达式for x in 列表if 条件表达式]
字典推导式
集合推导式
{x表达式for x in 集合if 条件表达式}
{(k,v)表达式for k,vin 字典if 条件表达式}

[x表达式for x in 列表if 条件表达式]
[(x, y表达式) for x in 列表1 for y in 列表2 if 条件表达式]
根据一个列表中的每个元素通过某种运算或筛选得到另
外一系列新数据,创建一个新列表

[x表达式for x in 列表if 条件表达式]
列表中的每个元素通过某种运算或筛选得
到另外一系列新数据,创建一个新列表

squares = []
for x in range(10):
squares.append(x ** 2)  
squares = [x ** 2 ]
for x in range(10)

[x表达式for x in 列表if 条件表达式]
for 前面表达式或函数,if后面加筛选条件

ls = [-4, -2, 0, 4]
ls1 = [x * 2 for x in ls]
# 列表元素乘2 [-8, -4, 0, 8]
ls3 = [x ** 2 for x in ls if x < 0]
# 正数元素平方[16, 4]
ls2 = [abs(x) for x in ls]
# 用abs()函数推导[4, 2, 0, 4]
print(ls1)
print(ls2)
print(ls3)

在这里插入图片描述

[x表达式for x in 列表if 条件表达式]
for 前面可以是函数

def fun(x):
    return x + x ** 2 + x ** 3


z = [(i + 1, fun(i))
     for i in range(5)]
# 序号与函数值的组合

print(z)

在这里插入图片描述

水仙花数是指一个3 位数每位上的数字的3 次幂之和等于
他本身,例如:153 = 13+ 53+ 33,称153是水仙花数。

for num in range(100, 1000):
    if num == sum([int(i) ** 3
                   for i in str(num)]):
        print(num, end=' ')


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/384709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小红书「高效达人筛选攻略」

三八女神节降临&#xff0c;诸多品牌纷纷开启铺垫预热&#xff0c;在各大平台借势宣传。而聚集庞大年轻女性消费群体的小红书&#xff0c;对“她营销”的重要性不言而喻。节点序幕拉开&#xff0c;面对海量达人信息&#xff0c;如何提前积草屯粮、高效备战&#xff1f; 本期千瓜…

【数据结构】链表:看我如何顺藤摸瓜

&#x1f451;专栏内容&#xff1a;数据结构⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;日拱一卒&#xff0c;功不唐捐 文章目录一、前言二、链表1、定义2、单链表Ⅰ、新建一个节点Ⅱ、内存泄漏Ⅲ、插入一个节点Ⅳ、销毁所有节点Ⅴ、反转一个链表3、…

云his系统源码 SaaS应用 基于Angular+Nginx+Java+Spring开发

云his系统源码 SaaS应用 功能易扩 统一对外接口管理 一、系统概述&#xff1a; 本套云HIS系统采用主流成熟技术开发&#xff0c;软件结构简洁、代码规范易阅读&#xff0c;SaaS应用&#xff0c;全浏览器访问前后端分离&#xff0c;多服务协同&#xff0c;服务可拆分&#xff…

【Linux要笑着学】进程创建 | 进程终止 | slab分派器

爆笑教程《看表情包学Linux》&#x1f448; 猛戳订阅&#xff01;​​​​​​​​​​​​&#x1f4ad; 写在前面&#xff1a;本章我们主要讲解进程的创建与终止。首先讲解进程创建&#xff0c;fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数&#…

总结篇 字符串设备(一)

简介 1、字符设备是Linux驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个个字节&#xff0c;按照字节流进行读写操作的设备。&#xff08;例&#xff1a;按键&#xff0c;电池等&#xff0c;IIC,SPI&#xff0c;LCD&#xff09;。这些设备的驱动就叫字符设备驱动。 在…

八股文(二)

一、 实现深拷贝和浅拷贝 1.深拷贝 function checkType(any) {return Object.prototype.toString.call(any).slice(8, -1) }//判断拷贝的要进行深拷贝的是数组还是对象&#xff0c;是数组的话进行数组拷贝&#xff0c;对象的话进行对象拷贝 //如果获得的数据是可遍历的&#…

小白推荐!必定成功的python的安装流程?

目录 1.安装教程 2.使用cmd测试是否安装成功&#xff0c;快捷键WinR 3.如果测试失败&#xff0c;如何卸载&#xff1f; 4.如何在pycharm中指定下载的python解释器路径&#xff1f; 5.第一条python语句 1.安装教程 1.前往python的官网&#xff08;弄个梯子可能会快一点&#xf…

spring boot + rabbitMq整合之死信队列(DL)

rabbit mq 死信队列 什么是死信队列? DL-Dead Letter 死信队列 死信&#xff0c;在官网中对应的单词为“Dead Letter”&#xff0c;可以看出翻译确实非常的简单粗暴。那么死信是个什么东西呢&#xff1f; “死信”是RabbitMQ中的一种消息机制&#xff0c;当你在消费消息时&…

Qt 解决程序全屏运行弹窗引发任务栏显示

文章目录摘要在VM虚拟机器中测试setWindowFlags()关键字&#xff1a; Qt、 Qt::WindowStayOnTopHint、 setWindowFlags、 Qt::Window、 Qt::Tool摘要 今天眼看项目就要交付了&#xff0c;结果在测试程序的时候&#xff0c;发现在程序全品情况下&#xff0c;点击输入框&#x…

【Android Studio】【学习笔记】【2023春】

文章目录零、常用一、界面布局疑问&报错零、常用 一、界面布局 Android——六大基本布局总结/CSDN小马 同学 【Android】线性布局&#xff08;LinearLayout&#xff09;最全解析/CSDNTeacher.Hu 一个不错的计算器界面&#x1f447; Android Studio App LinearLayout多层…

数据资产管理建设思考(二)

关于数据资产管理&#xff0c;近两年是数据治理行业中一个热点话题&#xff0c;当然有我们前面提到的国家的政策支持及方向指引的原因。另一方面我们做数据治理的同行们从学习吸收国外优秀的数据治理理论&#xff0c;进一步在实践中思考如何应用理论&#xff0c;并结合我们国家…

docker(二)镜像详解、镜像构建、镜像优化

文章目录前言一、docker镜像详解1.镜像分层结构2.镜像的表示二、镜像构建1.commit提交2.DockerfileDockerfile 命令详解三、镜像优化1.缩减镜像层2.多阶段构建3.使用最精简的基础镜像前言 一、docker镜像详解 1.镜像分层结构 共享宿主机的kernelbase镜像提供的是最小的Linux发…

【LeetCode】1487. 保证文件名唯一

1487. 保证文件名唯一 题目描述 给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹&#xff1a;在第 i 分钟&#xff0c;新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同的文件名&#xff0c;因此如果新建文件夹使用的文件名已经被占用&a…

pytorch-模型训练中过拟合和欠拟合问题。从模型复杂度和数据集大小排查问题

评价了机器学习模型在训练数据集和测试数据集上的表现。如果你改变过实验中的模型结构或者超参数&#xff0c;你也许发现了&#xff1a;当模型在训练数据集上更准确时&#xff0c;它在测试数据集上却不一定更准确。这是为什么呢&#xff1f; 训练误差和泛化误差 在解释上述现象…

常用Swagger注解汇总

常用Swagger注解汇总 前言 在实际编写后端代码的过程中&#xff0c;我们可能经常使用到 swagger 注解&#xff0c;但是会用不代表了解&#xff0c;你知道每个注解都有什么属性吗&#xff1f;你都用过这些属性吗&#xff1f;了解它们的作用吗&#xff1f;本文在此带大家总结一下…

6-2 SpringCloud快速开发入门:声明式服务消费 Feign实现消费者

声明式服务消费 Feign实现消费者 使用 Feign实现消费者&#xff0c;我们通过下面步骤进行&#xff1a; 第一步&#xff1a;创建普通 Spring Boot工程 第二步&#xff1a;添加依赖 <dependencies><!--SpringCloud 集成 eureka 客户端的起步依赖--><dependency>…

图解LeetCode——剑指 Offer 34. 二叉树中和为某一值的路径

一、题目 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。 二、示例 2.1> 示例 1&#xff1a; 【输入】root [5,4,8,11,null,13,4,7,2,null,null,5,1], t…

从 ChatGPT 爆火回溯 NLP 技术

ChatGPT 火遍了全网&#xff0c;多个话题频频登上热搜。见证了自然语言处理&#xff08;NLP&#xff09;技术的重大突破&#xff0c;体验到通用技术的无限魅力。GPT 模型是一种 NLP 模型&#xff0c;使用多层变换器&#xff08;Transformer&#xff09;来预测下一个单词的概率分…

cuda编程以及GPU基本知识

目录CPU与GPU的基本知识CPU特点GPU特点GPU vs. CPU什么样的问题适合GPU&#xff1f;GPU编程CUDA编程并行计算的整体流程CUDA编程术语&#xff1a;硬件CUDA编程术语&#xff1a;内存模型CUDA编程术语&#xff1a;软件线程块&#xff08;Thread Block&#xff09;网格&#xff08…

新界面Moonbeam DApp上线,替你先尝试了一番!

作者&#xff1a;充电中的小恐龙 请注意&#xff0c;本篇内容来自Moonbeam社区成员的无偿分享&#xff0c;与Moonbeam官方和Moonbeam中文社区无关。本文内容仅供参考&#xff0c;对于内容的准确性和实效性&#xff0c;请自行谨慎判断。 本文撰写于DApp上线Beta版本之时&#…