Python——列表排序和赋值

2023-11-07

(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=' ')


在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python——列表排序和赋值 的相关文章

  • BeautifulSoup 不抓取动态内容

    我遇到的问题是我想从此页面获取相关链接 http support apple com kb TS1538 http support apple com kb TS1538 如果我在 Chrome 或 Safari 中检查 Element 我
  • Python OpenCV:检测大体运动方向?

    我仍在编写一个书籍扫描脚本 现在 我所需要的只是能够自动检测翻页 这本书占据了 90 的屏幕 我使用一个粗糙的网络摄像头进行运动检测 所以当我翻页时 运动方向基本上是同一个方向 我修改了一个运动跟踪脚本 但导数却无济于事 usr bin e
  • 使用 Python 和 Boto3 列出 S3 存储桶的目录内容?

    我正在尝试使用 Python 和 Boto3 列出 S3 存储桶中的所有目录 我正在使用以下代码 s3 session resource s3 I already have a boto3 Session object bucket nam
  • 使用 Peewee 追溯创建索引?

    有没有办法用 Peewee 追溯索引 sql 文件的列 即初始规范未建立索引的情况 询问是因为执行所有插入然后建立索引应该更快 而不是相反 有没有办法用 Peewee 追溯索引 sql 文件的列 Yes Pewee s http docs
  • PyPandoc 与 PyInstaller 结合使用

    我安装了 PyInstaller 来为我的 python 脚本创建可执行文件 效果很好 我使用 PyPandoc 创建 docx报告 当正常的 python 文件运行时 它也可以正常运行 但不能从 PyInstaller 生成的可执行文件运
  • 在 Idle shell 中导入模块

    我正在尝试学习 python 但在导入模块时遇到问题 我有一个 pyc 文件 我正在尝试将其导入到名为 dfa pyc 的空闲 shell 中 我将该文件放在名为 xyz 的文件夹中 我使用以下命令导航到该文件夹 os chdir User
  • 类型错误:fit_transform() 需要 2 个位置参数,但给出了 3 个

    我有熊猫数据框df 我想对连续和分类特征进行编码df使用不同的编码器 我觉得用起来很舒服make column transformer 但是下面显示的代码失败了LabelEncoder 但可以很好地与OneHotEncoder handle
  • 使用 kdeplot 对数刻度

    我正在尝试使用 Seaborn 的 kdeplot 制作一个漂亮的自由能表面 热图 我非常接近 但无法找到改变颜色条比例的方法 颜色条比例很重要 因为它应该表示地图上不同坐标处的能量差异 我需要知道如何缩放颜色条的值 0 5961573 l
  • python 中的类变量在 __dict__ 中找不到

    有一段代码 class C a 1 def f self print f func a C print a a a f gt gt gt 1 gt gt gt f func 当我试图得到a dict or vars a 它告诉我只是 But
  • 在不同的 PC 之间传输 Python 设置

    我的情况是我有两台笔记本电脑fresh installation of windows 现在我用它们来编程 所以 假设我在一台笔记本电脑上安装了各种 python 模块 包 那么我有什么办法可以clone我的另一台笔记本电脑上的完整 pyt
  • 将多嵌套 dict/json 加载到 pandas 中

    我正在尝试加载一个非常令人困惑的多重嵌套JSON变成熊猫 我已经在使用了json 规范化 http pandas pydata org pandas docs stable reference api pandas io json json
  • 如何将Python列表分成不等长的子列表?

    我试图将用逗号分隔的元素列表划分为长度不等的块 我该如何划分它 list1 1 2 1 list2 1 1 1 1 1 1 1 2 1 1 1 3 1 1 1 4 list1 包含的元素是我希望将 list2 分成的块的大小 你可以结合以下
  • Numpy:导入错误:无法导入名称测试用例

    我安装了 numpy sudo apt get install numpy 然后在 python2 7 中导入 numpy import numpy 我收到这个错误 Traceback most recent call last File
  • 在 Pandas 中计算滚动回归并存储斜率

    我有一些时间序列数据 我想计算 Pandas 中最后 n 天的分组滚动回归 并将该回归的斜率存储在新列中 我搜索了较旧的问题 它们要么没有得到解答 要么使用了 Pandas OLS 我听说它已被弃用 我想我可能可以使用df rolling
  • 数据类的子类,带有一些断言

    我有一个冻结的数据类MyData保存数据 我想要一个杰出的子类MySpecialData只能保存长度为1的数据 这是一个有效的实现 from dataclasses import dataclass field dataclass froz
  • Python:从源代码安装模块

    当然你们都知道答案 而且很容易 但我是 python 新手 我在网上找到了一段代码 读取雅虎财经的股价 usr bin env python Copyright c 2007 2008 Corey Goldberg email protec
  • 了解 django admin readonly_fields

    我创建了一些代码来区分 Django admin 中的两个用户组 从而导致显示所有字段为只读或仅显示其中的一些字段 这些字段直接在 ModelAdmin 类中设置 首先这是代码 class PersonAdmin admin ModelAd
  • Django 查询集权限

    我正在构建一个相当复杂的Django在电子邮件扫描服务之上使用的应用程序 这Django应用程序是使用 Python 3 5 编写的 该应用程序主要使用Django Rest Framework处理与浏览器前端的通信 我目前遇到的问题是我尝
  • Pandas - 使用其他列值作为列名选择列

    我有一个包含一列的数据框 我们称之为 名称 names 具有其他列的名称 我想添加一个新列 该列的每一行都有基于 名称 列中包含的列名称的值 Example 输入数据框 pd DataFrame from dict a 1 2 3 4 b
  • 如何阻止诱变剂自动更新 ID3 版本?

    当我尝试在 MP3 中嵌入专辑封面时 诱变剂将 ID3 标签更新为版本 2 4 我不希望这样做 因为在 ID3v2 4 中 我的手机 运行 Windows Phone 8 和我的计算机无法识别标签 显然 只需更改mutagen id3 ve

随机推荐

  • ES:一次分片设计问题导致的故障

    现象 1 单节点CPU持续高 2 写入骤降 3 线程池队列积压 但没有reject 4 使用方没有记录日志 排查 1 ES监控 只能看到相应的结果指标 无法反应出原因 2 ES日志 大量日志打印相关异常 routate等调用栈 core a
  • Java是解释型还是编译型语言?

    Java是解释型还是编译型语言 首先JVM是什么 JVM虚拟机也是java的运行环境 因为所有系统平台都支持JVM 所以实现了Java的跨平台 我们可以把JVM虚拟机比作人 有食物供我们食用 当我们需要吃哪种食物的时候就吃哪个实物 在JVM
  • 深度学习笔记(五) 代价函数的梯度求解过程和方法

    作为自己的笔记系列 方便自己查阅和理解 1 什么是梯度 梯度 本意是一个向量 矢量 当某一函数在某点处沿着该方向的方向导数取得该点处的最大值 即函数在该点处沿方向变化最快 变化率最大 为该梯度的模 在二元函数的情形 设函数z f x y 在
  • Linux C中对json格式数组数据的生成与解析

    在网络通信中 数据经常被做成json格式的来进行传输 那么我们怎么在linux系统中去做json格式的数据呢 怎么将接收到的json格式的数据解析出来呢 1 linux json库的安装 1 下载json c源码包 2 解压json c的源
  • Android Studio NDK开发注意

    1 如果JNILibs armeabi中有相应的库文件 编绎重新生成的 so文件不会打包到新的apk中
  • 干掉 “重复代码” 的技巧有哪些?

    软件工程师和码农最大的区别就是平时写代码时习惯问题 码农很喜欢写重复代码而软件工程师会利用各种技巧去干掉重复的冗余代码 业务同学抱怨业务开发没有技术含量 用不到设计模式 Java 高级特性 OOP 平时写代码都在堆 CRUD 个人成长无从谈
  • UDP包传送字符串实现方法以及方格乱码的出现原因和解决办法

    在使用socket发送udp包传输文本时 由于包中的char型数组是定长的 且其长度大于消息长度 所以其中必有很多空元素 当接收端接收到udp包时进行转码 空元素就会被转码成方块形状的乱码 解决办法 每条消息发送完毕后添加 作为记号 接收后
  • 浏览器渲染机制 (二)浏览器主进程-浏览器内核-浏览器渲染流程

    文章目录 浏览器主进程和浏览器渲染进程的通信过程 浏览器内核 渲染进程 中线程之间的管理 GUI渲染线程与JS引擎线程互斥 JS阻塞页面加载 WebWorker JS的多线程 WebWorker与SharedWorker 总结浏览器渲染流程
  • adb通过网络连接

    1 使用USB数据线连接设备 2 在命令行输入adb tcpip 5555 5555为端口号 可以自由指定 3 断开 USB数据 此时可以连接你需要连接的 USB设备 4 再计算机命令行输入 adb connect lt 设备的IP地址 g
  • 自动计算30天内的股价最高价源代码

    我可以回答这个问题 您可以使用以下代码来计算30天内股价的最高价 复制 import pandas as pd import yfinance as yf 设置股票代码和日期范围 symbol AAPL start date 2021 01
  • Python绝技:运用Python成为顶级黑客

    Python 是一门常用的编程语言 它不仅上手容易 而且还拥有丰富的支持库 对经常需要针对自己所 处的特定场景 以极少的代码量实现所需的功能 Python绝技 运用Python成为顶级黑客结合具体的场景和真 实的案例 详述了 Python
  • 《软件测试的艺术》第三章 代码检查、走查和评审

    软件测试的艺术 第三章 代码检查 走查和评审 3 1 代码检查与走查 3 2 代码检查 3 2 1 代码检查小组 3 2 2 检查议程与注意事项 3 2 3 对事不对人 和人有关的注意事项 3 2 4 代码检查的衍生功效 3 3 用于代码检
  • 100个python算法超详细讲解:农夫过河

    100个python算法超详细讲解 谷哥技术 1 问题描述 一个农夫在河边带了一匹狼 一只羊和一棵白菜 他需要把这三样东西用 船带到河的对岸 然而 这艘船只能容下农夫本人和另外一样东西 如果农夫 不在场的话 狼会吃掉羊 羊也会吃掉白菜 请编
  • 鸿蒙内核阅读笔记-定时器

    鸿蒙内核阅读笔记 定时器 简介 核心模块 定时器 los swtmr c 介绍 阅读代码 函数部分 简介 近期在阅读鸿蒙liteOS a 由于是初次探索内核的奥秘 将一些阅读的心得进行分享 希望能在作为笔记的同时 也能帮助更多人学习 感谢图
  • springboot + eureka集群,实现注册中心,实现负载均衡

    搭建eureka集群 新建一个boot项目 File new project 如图选择 next 起名字如下 gt next finish 新建3个注册中心 以三个注册中心为例 想多的自己加 项目名字上 new module next 起名
  • Basic Level 1055 集体照 (25分)

    题目 拍集体照时队形很重要 这里对给定的 N 个人 K 排的队形设计排队规则如下 每排人数为 N K 向下取整 多出来的人全部站在最后一排 后排所有人的个子都不比前排任何人矮 每排中最高者站中间 中间位置为 m 2 1 其中 m 为该排人数
  • PowerDesigner安装步骤和打印错误

    1 解压 2 双击运行安装包 等待初始化 3 初始化完成后点击next 4 选择地区 同意协议 完成后点击next 5 选择安装位置 完成后点击next 6 选择要安装的组件 eclipse我不需要 需要可以勾选并配置 完成后点击next
  • pandas apply使用多列计算生成新的列

    在python数据分析中 有时需要根据多列数据生成中间结果 pandas给我们带来了很多方便 通常简短的代码可以实现一些高级功能 灵活掌握一些技巧可以事倍功半 pandas的apply方法用于对指定列的每个元素进行相同的操作 下面生成一个d
  • 静态代码分析工具清单:开源篇(各语言)

    本文是一个静态代码分析工具的清单 共有26个工具 包括4个 NET工具 2个Ada工具 7个C 工具 4个Java工具 2个JavaScript工具 1个Opa工具 2个Packaging工具 3个Perl工具 1个Python工具 1 N
  • Python——列表排序和赋值

    1 列表排序 列表排序方法 ls sort 对列表ls 中的数据在原地进行排序 ls 13 5 73 4 9 ls sort ls sort reverse False 默认升序 reverse True 降序 ls 13 5 73 4 9