Python 中 map() zip() list() 函数的介绍

map()

map(function , iterable, ….) : 依次将函数function作用在可迭代的list上,并返回对应的函数返回值,组成新的list(python 2.x) 或者迭代器(python 3.x)。

注意:map() 并不会改变iterable 而是会产生一个新的iterable,且iterable 中的元素可以式任意的类型,只要function可以处理这个类型即可。当具有多个iterable时,是表明其分别是function的参数,而不是说分别作用在各个iterable 上并返回结果。如果iterable的个数和function的个数对不上,则会报错。

def fun1(x):
    return x * x
def fun2(x, y):
    return x * y
data1 = [1,2,3]
data2 = [4,5,6]
m1 = map(fun1, data1)   # fun1 只有一个参数,如果输入多个data则会报错
print(m1)               # python 3.x 返回的是 迭代器
print(list(m1))         # 迭代器转换为list

m2 = map(fun2, data1, data2)    # data1 和 data2 分别是fun2的两个可迭代的参数
print(m2)
print(list(m2))

>> <map object at 0x7f95c7b72290>
>> [1, 4, 9]

>><map object at 0x7fe3a7591290>
[4, 10, 18]
</map></map>

zip()

zip(iterable,…) : 将各个iterable中的对应的各个元素组合成元组形式,并返回列表(python 2.x) 或者zip对象/元组迭代器(python 3.x),即可以通过next方法获取迭代器的下一个元素。

注意: zip() 不会改变原来的iterable,而是会产生新的值;当各个iterable的长度不一致时,以最短长度为标准,大于最短长度的元素将不会被组合进元组中;iterable可以是各种类型,列表,元组,字典,集合,字符串等都是可以的;利用 * 号操作符,也可以将元组解压。

data1 = [1,2,3]
data2 = [4,5,6,7,8]
m1 = zip(data1, data2)

print(m1)
print(list(m1))
print(*m1)          # &#x89E3;&#x538B;zip,&#x548C;&#x4E0A;&#x9762;&#x7684;list()&#x6709;&#x70B9;&#x7C7B;&#x4F3C;&#x7684;&#x529F;&#x80FD;

>> <zip object at 0x7fcffad42410>
>> [(1, 4), (2, 5), (3, 6)]
>> (1, 4), (2, 5), (3, 6)
</zip>

list()

list( ) : 将 字符串,列表,元组,字典等转化为列表

data1 = "hello world"
data2 = ("1",2,3)
data3 = {"a":1,"b":2}
print(list(data1))
print(list(data2))
print(list(data3))          # &#x8F6C;&#x6362;&#x5B57;&#x5178;&#x7684;key
print(list(data3.values())) # &#x8F6C;&#x6362;&#x5B57;&#x5178;&#x7684;value

>> ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>> ['1', 2, 3]
>> ['a', 'b']
>> [1, 2]https://www.runoob.com/python/att-list-list.html)

Original: https://www.cnblogs.com/jack-nie-23/p/16506576.html
Author: jacknie23
Title: Python 中 map() zip() list() 函数的介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582384/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [ Shell ] 通过 Shell 脚本导出 CDL 网表

    通过 si 导出电路网表,实际上在 Virtuoso 中通过菜单 File – Export – CDL 和 Calibre LVS 中 Export fr…

    Linux 2023年6月7日
    0165
  • [极客大挑战 2019]Secret File

    0x01 寻找做题信息 打开环境,查看源代码,发现可疑链接,/Archive_room.php,action.php打开action.php会发生302跳转,查找302跳转无果,百…

    Linux 2023年6月8日
    0103
  • redis中setbit的用法

    原文地址:http://www.zhihu.com/question/27672245 在redis中,存储的字符串都是以二级制的进行存在的。举例:设置一个 key-value ,…

    Linux 2023年5月28日
    096
  • Redis Hashes 数据类型简述

    Redis Hashes 是我们日常使用中比较高频的 Redis 数据类型,内部使用 Redis 字典结构存储,底层实现之一为哈希表结构。 下面从哈希表节点,哈下表结构,Redis…

    Linux 2023年5月28日
    088
  • .NET面试经典三问:什么是.NET?什么是.NET Framework?什么是.NET Core?

    什么是.NET?什么是.NET Framework? 本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NE…

    Linux 2023年6月13日
    089
  • Spring事务管理

    事务的特性:一致性、原子性、隔离性、持久性 Spring事务管理相关接口:PlatformTransactionManager(事务管理器)、TransactionDefiniti…

    Linux 2023年6月7日
    0113
  • 什么是可调CAP策略?为什么需要可调CAP策略?

    在说可调CAP策略之前,我们要先说说CAP理论。 CAP理论是设计分布式系统必用的黄金法则,它提出了设计分布式系统的三个基本要求:一致性(Consistency)、可用性(Avai…

    Linux 2023年6月6日
    0121
  • Java学生管理系统(详解)

    下面会分享我在做这个练习时的一些方法以及程序代码 供大家参考(最后附上完整的项目代码)。 首本人只是个初学Java的小白,可能项目中有许多地方使用不规范的以及代码的格式问题会引起各…

    Linux 2023年6月6日
    091
  • python虚拟环境介绍与安装(不借助anaconda)

    1 虚拟环境介绍 (1) 虚拟环境能对不同的状况进行环境隔离,程序A的环境变动不会影响程序B的开发 (2)比较便携,因为虚拟环境中都有各自的python包,U盘复制环境,省去其他人…

    Linux 2023年6月7日
    0113
  • Redis深入浅出

    bash;gutter:true; RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前…

    Linux 2023年5月28日
    0111
  • 我懂得了什么

    站在24岁的这个档口,没有学业又没有工作的时刻,前不着村后不着店。我觉得应该要写一些总结,虽然年仅24的我相比老人家总结不出更深刻的道理,但是现在是互联网的时代,获取知识的途径已经…

    Linux 2023年6月6日
    0105
  • 文件权限问题导致plink报错 Failed to open 21JAN.log. Try changing the –out parameter.

    晚上兴起,想起一直以来没有解决的问题,于是复制一个目录,开始跑数据,但是跑到第一步就采坑 plink –chr-set 95 –file merge &#8…

    Linux 2023年6月14日
    0162
  • Windows 是最安全的操作系统

    建了一个用户交流群,我在群里说:”Windows 是最安全的操作系统。” 立刻引发了很多有意思的观点。我在群里一个人说不过大家,先篇文章把自己的论点罗列一下…

    Linux 2023年6月14日
    094
  • Seata-初体验以及避坑

    Seata是什么 这里引用官方解释 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 …

    Linux 2023年6月7日
    0102
  • 【证券从业】金融基础知识-第四章 股票03

    注1:后续学习并整理到第八章,全书完结后再合并成一个笔记进行源文件分享 注2:本章内容巨多,大约分为三篇文章记录消化 posted @2022-06-08 01:28 陈景中 阅读…

    Linux 2023年6月13日
    0105
  • phpcmsv9 后台统计编辑发稿数量

    直切正题: 每个人,每个栏目,发稿数量统计 SELECT a.realname AS 姓名, c.catname AS 栏目名称, count(1) AS 发稿量FROM v9_n…

    Linux 2023年6月13日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球