当前位置: 首页 > news >正文

Python列表(二)

方式三:

创建对应的枚举对象

概念:通过枚举函数,生成一个新的对象

作用:函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列

同时列出数据下标和数据

#生成枚举对象
values = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
#先根据列表,创建一个枚举对象
print(list(enumerate(values)))
#输出:[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j')]#遍历整个的枚举对象for idx,value in enumerate(values):print(idx, value)#输出:0 a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8 i 9 j

 方式四:

使用迭代器进行遍历

迭代:是访问集合元素的一种方式,按照某种顺序逐个访问集合中的每一项

可迭代对象:能够被迭代的对象

判定依据:能作用与for in 

判断方法:

import collections

isinstance(obj,collections.Iterable)

迭代器:是可以记录遍历位置的对象

从第一个元素开始,往后通过next()函数,进行遍历

只能往后不能往前

判定依据:能作用于next()函数

判定方法:

import collections

isinstance(obj,collections.Iterator

注意:迭代器也是可迭代对象,所以也可以作用于for in

生成迭代器:i = iter(nums)

为什么会产生迭代器

1.仅仅在迭代到某个元素的 时候才处理该元素。

1)在此之前,元素可以不存在

2)在此之后,元素可以被销毁

3)特别适合用于一些巨大的或是无限的集合

2.提供了一个统一访问集合的接口

1)可以把所有的可迭代对象,转换成迭代器进行使用

2)iter(Iterable)

         iter(str)

         iter(list)

         iter(tuple)

         iter(dict)

迭代器简单使用

1)使用next()函数,从迭代器中取出下一个对象,从第1个元素开始

2)因为迭代器比较常用,所以在Python中可以直接作用于for in

额外操作

判定

1)元素 in 列表

2)元素 not in 列表

比较

不等式判定即可

排序

方式一:

内建函数:

可以对所有可迭代对象进行排序

语法:

sorted(itearble,key=None,reverse=False)

参数:

itrearble:可迭代对象

key:排序关键字,值为一个函数,此函数只有一个参数且只返回一个值

reverse:

控制升序降序

默认False——升序

返回值:

一个已经排好序的列表

列表类型

#列表排序
#列表排序可以用sorted()函数实现,该函数可以对列表进行排序,并返回一个新的排序后的列表。
s = [1,3,2,6,4,5]
result = sorted(s)
result2 = sorted(s, reverse=True)
print(result)
print(result2)
#输出:[1, 2, 3, 4, 5, 6]   [6, 5, 4, 3, 2, 1]#key参数
#sorted()函数还可以接收一个key参数,该参数是一个函数,用于指定根据哪个元素进行排序。
#key函数的输入参数是列表中的每一个元素,返回值用于进行比较。
#下面是一个例子:
s = [('apple', 3), ('banana', 2), ('orange', 4), ('pear', 1)]
def getKey(x):return x[1]
result = sorted(s, key=getKey)
print(result)

 方式二:

使用sort()

1.无返回值,改变原有列表

2.只能用于列表

乱序:

导入random模块

import random
s = [1,3,2,6,4,5]
random.shuffle(s)
print(s)
#输出:[3, 2, 5, 1, 6, 4]

反转

1)reverse

#反转
l = [1,2,3,4,5]
s = l.reverse()
print(s)

2)切片反转

res = l[::-1]
print(res,l)

http://www.lryc.cn/news/510650.html

相关文章:

  • 计算机网络:应用层 —— 网络应用模式
  • @Repository注解和@mapper的区别
  • 解锁成长密码:探寻刻意练习之道
  • cuda-cuDnn
  • 如何使用Python和PIL库生成带竖排文字的封面图像
  • 低代码开发 实战转型案例一览
  • SQL Server中FIRST_VALUE和 LAST_VALUE窗口函数允许在一个指定的窗口内返回第一个或最后一个值
  • 机器学习-高斯混合模型
  • 微信V3支付报错 平台证书及平台证书序列号
  • 41.欠采样技术下变频不能用与跨两个nyquist的情况下
  • 20241227通过配置nomodeset参数解决更新grub之后,ubuntu20.04.5无法启动的问题
  • 从 GitLab.com 到 JihuLab.com 的迁移指南
  • 深度学习中的并行策略概述:2 Data Parallelism
  • Python大数据可视化:基于Python对B站热门视频的数据分析与研究_flask+hive+spider
  • 利用 Python 编写一个 VIP 音乐下载脚本
  • linux内核如何实现TCP的?
  • 【Spring】基于XML的Spring容器配置——FactoryBean的使用
  • Docker使用——国内Docker的安装办法
  • 电商会员门店消费数据分析
  • Vue.js 入门与进阶:打造高效的前端开发体验
  • Java包装类型的缓存
  • 【蓝桥杯——物联网设计与开发】拓展模块4 - 脉冲模块
  • .NET平台用C#通过字节流动态操作Excel文件
  • SpringMVC详解
  • springboot、spring、springmvc有哪些注解
  • Apache Commons ThreadUtils 的使用与优化
  • 重温设计模式--5、职责链模式
  • 下午四点半
  • 嵌入式单片机中Flash存储器控制与实现
  • loki failed to flush