Python内置函数map(), list(), len(), iter(), hex(), hash()的详细解析,包括功能、语法、示例及注意事项

1. map(function, iterable, ...)

功能:对可迭代对象中的每个元素应用指定函数,返回一个迭代器。
参数

  • function:要执行的函数(可以是lambda表达式)。

  • iterable:一个或多个可迭代对象(如列表、元组)。
    返回值:迭代器(Python 3中需用list()等转换为列表)。

nums = [1, 2, 3]
squared = map(lambda x: x**2, nums)  # 平方操作
print(list(squared))  # 输出 [1, 4, 9]# 多参数示例
sums = map(lambda x, y: x + y, [1, 2], [3, 4])
print(list(sums))  # 输出 [4, 6]

注意

  • Python 3返回迭代器,节省内存但需显式转换。

  • 多可迭代对象时,函数需接收对应数量参数,且按最短长度截断。


2. list([iterable])

功能:将可迭代对象转换为列表。
参数

  • iterable(可选):字符串、元组、字典(返回键列表)等。
    返回值:列表对象。

str_list = list("hello")  # ['h', 'e', 'l', 'l', 'o']
tuple_list = list((1, 2, 3))  # [1, 2, 3]
empty_list = list()  # []
#从字符串创建列表
string = "hello"
string_list = list(string)
print(string_list)  # 输出: ['h', 'e', 'l', 'l', 'o']#从元组创建列表
tuple = (1, 2, 3)
tuple_list = list(tuple)
print(tuple_list)  # 输出: [1, 2, 3]#从字典创建列表
dictionary = {'a': 1, 'b': 2, 'c': 3}
keys_list = list(dictionary)
print(keys_list)  # 输出: ['a', 'b', 'c']

注意

  • 非可迭代对象(如整数)会报TypeError

  • 空参数返回空列表,等效于[]


3. len(s)

功能:返回对象的长度(元素个数)。
参数

  • s:字符串、列表、元组、字典、集合等。
    返回值:整数。

print(len("hello"))  # 5
print(len([1, 2, 3]))  # 3
print(len({"a": 1, "b": 2}))  # 2

注意

  • 自定义类需实现__len__()方法才支持len()

  • 字典返回键的数量,集合返回元素数量。


4. iter(object[, sentinel])

功能:生成可迭代对象的迭代器。
参数

  • object:支持迭代协议(有__iter__())或序列协议(有__getitem__())。

  • sentinel(可选):若提供,object需为可调用对象,迭代直到返回sentinel
    返回值:迭代器对象。

nums = [1, 2, 3]
it = iter(nums)
print(next(it))  # 1
print(next(it))  # 2# 文件逐行读取(直到空行)
with open('file.txt') as f:for line in iter(f.readline, ''):print(line)

5. hex(x)

功能:将整数转换为小写十六进制字符串(前缀0x)。
参数

  • x:整数。
    返回值:字符串,如'0x1a'

print(hex(255))  # 0xff
print(hex(-42))  # -0x2a

注意

  • 非整数参数会报TypeError

  • 转换结果可通过format(x, '#X')转为大写。


6. hash(object)

功能:返回对象的哈希值(整数)。用于字典键、集合成员快速查找。
参数

  • object:不可变类型(如字符串、元组、数字)。
    返回值:整数哈希值。

print(hash("hello"))  # 随机整数(Python 3.3+因安全随机化)
print(hash(123))  # 123

注意

  • 可变对象(如列表、字典)不可哈希,会报TypeError

  • 哈希值在程序生命周期内一致,但不同解释器或版本可能不同。


总结

  • map():批量处理数据,惰性求值。

  • list():灵活构造列表,处理迭代结果。

  • len():通用长度查询,需对象实现__len__

  • iter():手动控制迭代过程,支持高级迭代逻辑。

  • hex():整数转十六进制,调试或编码常用。

  • hash():确保对象可哈希,优化数据结构性能。

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

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

相关文章

Win本地安装Ollama+本地运行大模型+Cherrystudio使用

0. 前言 本文主要介绍 win 本地安装 Ollama ,本地部署 Ollama 的 deepseek-r1:7b 大模型,使用具有界面画操作的工具 Cherrystudio进行操作。文章内容仅供参考。 1. Ollama简介 ‌ ‌Ollama 是一个开源的框架,旨在本地运行大型语言模型…

用户点击商品埋点的实现方案

在高并发、可扩展性和高可用性的前提下,实现用户点击商品的埋点,方案应包括 数据采集、数据传输、数据存储和数据分析 四个主要环节。下面是一个完整的埋点实现方案: 1. 方案架构 整体流程: 前端埋点:用户点击商品时…

【C++】AVLTree(AVL树)简单模拟

文章目录 1.AVL树的结点2.AVL树的插入3.AVL树的旋转3.1 新节点插入较高左子树的左侧---左左:右单旋3.2 新节点插入较高右子树的右侧---右右:左单旋3.3 新节点插入较高左子树的右侧---左右:先左单旋再右单旋3.4 新节点插入较高右子树的左侧---…

零基础Vue入门6——Vue router

本节重点: 路由定义路由跳转 前面几节学习的都是单页面的功能(都在专栏里面https://blog.csdn.net/zhanggongzichu/category_12883540.html),涉及到项目研发都是有很多页面的,这里就需要用到路由(vue route…

【数据结构】(6) LinkedList 链表

一、什么是链表 1、链表与顺序表对比 不同点LinkedListArrayList物理存储上不连续连续随机访问效率O(N)O(1)插入、删除效率O(1)O(N) 3、链表的分类 链表根据结构分类,可分为单向/双向、无头结点/有头节点、非循环/循环链表,这三组每组各取…

使用Pygame制作“俄罗斯方块”游戏

1. 前言 俄罗斯方块(Tetris) 是一款由方块下落、行消除等核心规则构成的经典益智游戏: 每次从屏幕顶部出现一个随机的方块(由若干小方格组成),玩家可以左右移动或旋转该方块,让它合适地堆叠在…

(苍穹外卖)项目结构

苍穹外卖项目结构 后端工程基于 maven 进行项目构建,并且进行分模块开发。 1). 用 IDEA 打开初始工程,了解项目的整体结构: 对工程的每个模块作用说明: 序号名称说明1sky-take-outmaven父工程,统一管理依赖版本&…

【漫画机器学习】082.岭回归(或脊回归)中的α值(alpha in ridge regression)

岭回归(Ridge Regression)中的 α 值 岭回归(Ridge Regression)是一种 带有 L2​ 正则化 的线性回归方法,用于处理多重共线性(Multicollinearity)问题,提高模型的泛化能力。其中&am…

websocket自动重连封装

websocket自动重连封装 前端代码封装 import { ref, onUnmounted } from vue;interface WebSocketOptions {url: string;protocols?: string | string[];reconnectTimeout?: number; }class WebSocketService {private ws: WebSocket | null null;private callbacks: { [k…

【华为OD-E卷 - 115 数组组成的最小数字 100分(python、java、c++、js、c)】

【华为OD-E卷 - 数组组成的最小数字 100分(python、java、c、js、c)】 题目 给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字) 输…

在Vue3 + Vite 项目中使用 Tailwind CSS 4.0

文章目录 首先是我的package.json根据官网步骤VS Code安装插件验证是否引入成功参考资料 首先是我的package.json {"name": "aplumweb","private": true,"version": "0.0.0","type": "module","s…

AURIX TC275学习笔记4 官方GTM例程 GTM_TOM_PWM_1

文章目录 概述其他例程 代码分析IfxGtm_enable()IfxGtm_Cmu_enableClocks()IfxGtm_Tom_Pwm_initConfig()IfxGtm_Tom_Pwm_init()IfxGtm_Tom_Pwm_start()fadeLED() 概述 目的&#xf…

ASP.NET Core中间件的概念及基本使用

什么是中间件 中间件是ASP.NET Core的核心组件,MVC框架、响应缓存、身份验证、CORS、Swagger等都是内置中间件。 广义上来讲:Tomcat、WebLogic、Redis、IIS;狭义上来讲,ASP.NET Core中的中间件指ASP.NET Core中的一个组件。中间件…

app专项测试(网络测试流程)

一、网络测试的一般流程 step1:首先要考虑网络正常的情况 ① 各个模块的功能正常可用 ② 页面元素/数据显示正常 step2:其次要考虑无网络的情况 ① APP各个功能在无网络情况下是否可用 ② APP各个页面之间切换是否正常 ③ 发送网络请求时是…

Vue el-input密码输入框 按住显示密码,松开显示*;阻止浏览器密码回填,自写密码输入框;校验输入非汉字内容;文本框聚焦到内容末尾;

输入框功能集合 <template><div style"padding: 10px"><!-- 密码输入框 --><el-input:type"inputType"v-model"password"placeholder"请输入密码"auto-complete"new-password"id"pwd"style…

【数据结构】_复杂度

目录 1. 算法效率 2. 时间复杂度 2.1 时间复杂度概念 2.2 准确的时间复杂度函数式 2.3 大O渐进表示法 2.4 时间复杂度的常见量级 2.5 时间复杂度示例 3. 空间复杂度 3.1 空间复杂度概念 3.2 空间复杂度示例 1. 算法效率 一般情况下&#xff0c;衡量一个算法的好坏是…

Day48_20250130【回校继续打卡】_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II

Day48_20250130_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II 20250130补完 739.每日温度 题目 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0…

ASP.NET Core中间件Markdown转换器

目录 需求 文本编码检测 Markdown→HTML 注意 实现 需求 Markdown是一种文本格式&#xff1b;不被浏览器支持&#xff1b;编写一个在服务器端把Markdown转换为HTML的中间件。我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上&#xff0c;并且在它之前运…

Text2Sql:开启自然语言与数据库交互新时代(3030)

一、Text2Sql 简介 在当今数字化时代&#xff0c;数据处理和分析的需求日益增长。对于众多非技术专业人员而言&#xff0c;数据库操作的复杂性常常成为他们获取所需信息的障碍。而 Text2Sql 技术的出现&#xff0c;为这一问题提供了有效的解决方案。 Text2Sql&#xff0c;即文…

将Deepseek接入pycharm 进行AI编程

目录 专栏导读1、进入Deepseek开放平台创建 API key 2、调用 API代码 3、成功4、补充说明多轮对话 总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&#x1f308; 博客主页&#xff1a;请点击——…