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

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.lryc.cn/news/532953.html

相关文章:

  • [LVGL] 在VC_MFC中移植LVGL
  • MySQL视图索引操作
  • 一次奇怪的空指针问题分析:事务、死锁与隐式回滚
  • 解决aspose将Excel转成PDF中文变成方框的乱码问题
  • .net8.0使用EF连接sqlite数据库及使用Gridify实现查询的简易实现
  • 2025.2.5——五、[网鼎杯 2020 青龙组]AreUSerialz
  • 电风扇各国检测认证详细介绍美国FCC+UL欧盟CE+ROHS日本PSE+METI备案+英国UKCA
  • Flutter Isolate解决耗时任务导致卡死
  • 使用deepseek快速创作ppt
  • STM32的HAL库开发---高级定时器---输出比较模式实验
  • python Excel 表读取合并单元格以及清除空格符
  • 额外题目汇总2-链表
  • C#控件开发6—指示灯
  • 探索从传统检索增强生成(RAG)到缓存增强生成(CAG)的转变
  • 【学习总结|DAY036】Vue工程化+ElementPlus
  • 【GitHub】GitHub 2FA 双因素认证 ( 使用 Microsoft Authenticator 应用进行二次验证 )
  • c# 2025/2/7 周五
  • 蓝桥杯思维训练(五)
  • I.MX6ULL 中断介绍下
  • Elasticsearch 生产集群部署终极方案
  • Python用langchain、OpenAI大语言模型LLM情感分析苹果股票新闻数据及提示工程优化应用...
  • 【正点原子K210连载】第六十七章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南
  • Centos Ollama + Deepseek-r1+Chatbox运行环境搭建
  • ReactNative进阶(五十九):存量 react-native 项目适配 HarmonyOS NEXT
  • go并发和并行
  • 一种解决SoC总线功能验证完备性的技术
  • Web3 与区块链:开启透明、安全的网络新时代
  • c#中Thread.Join()方法的经典示例
  • 深入了解越权漏洞:概念、危害与防范
  • MySQL 数据库编程-C++