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)

大家都在看

  • go-select 机制

    select 的用法与 switch 语言非常类似,由 select 开始一个新的选择块,每个选择条件由 case 语句来描述。 与 switch 语句相比,select 有比较多…

    Linux 2023年6月13日
    0101
  • Redis分布式锁实战

    背景 目前开发过程中,按照公司规范,需要依赖框架中的缓存组件。不得不说,做组件的大牛对CRUD操作的封装,连接池、缓存路由、缓存安全性的管控都处理的无可挑剔。但是有一个小问题,该组…

    Linux 2023年5月28日
    096
  • ceph存储集群搭建以及介绍

    转载至https://blog.csdn.net/weixin_44989941/article/details/123370410 Original: https://www.c…

    Linux 2023年6月14日
    095
  • 小试牛刀:Linux中部署RabbitMQ

    一、下载地址 本人采用的是 RabbitMQ 3.8.20+ Erlang 23.3.4.16 1、Erlang下载:https://github.com/erlang/otp/r…

    Linux 2023年6月14日
    096
  • 基于AnolisOS8.6安装OceanBase数据库

    网络配置 cd /etc/sysconfig/network-scripts/ ls vi ifcfg-ens33 修改网络配置 TYPE=Ethernet PROXY_METHO…

    Linux 2023年6月7日
    0109
  • Debian目录的生成及打包

    故事背景 做linux开发的一般都会涉及到deb包,那么我们如何制作deb包,debian目录中都有哪些文件以及他们的含义是什么呢?那么我们就带着这些疑惑去探索了。 探索之路 首先…

    Linux 2023年5月27日
    0146
  • k8s之部署metrics-server 转载

    Metrics Server是Kubernetes内置自动缩放管道的可扩展,高效的容器资源指标来源。 Metrics Server从Kubelet收集资源指标,并通过Metrics…

    Linux 2023年6月14日
    083
  • Linux高可用之Keepalived

    注意: 各节点时间必须同步 确保各节点的用于集群服务的接口支持MULTICAST通信(组播); 安装 从CentOS 6.4开始keepalived随系统base仓库提供,可以使用…

    Linux 2023年5月27日
    0141
  • Timeout connecting to [localhost/127.0.0.1:9200]

    空服务启动时(或者压根没引入es相关jar包)报Timeout connecting to [localhost/127.0.0.1:9200]错误时,查看pom.xml中是否引用…

    Linux 2023年6月7日
    0151
  • Windows 域控配置时间同步

    此功能是因内网时间与互联网时间不同步,需我们手动指定互联网NTP服务器来同步时间。一般默认情况下,加域客户端同步的是域主机的时间。如果域控的主机时间不准的话,那么域内的客户端也就随…

    Linux 2023年6月8日
    0154
  • 给亨亨猫软件配置系统代理下载国外视频

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    099
  • Linux下使用压力测试工具stress

    首先解压安装包到/usr/local/src/下 mv stress-1.0.4.tar.gz /usr/local/src​tar -zxf stress-1.0.4.tar.g…

    Linux 2023年6月13日
    091
  • docker-compose安装redis-sentinel集群(1主+2副+2哨兵)

    前提:本试验环境已经提前安装了docker和docker-compose 说明:本次部署是单机伪集群,想要部署真正的集群,需要将秒个主件拆分到各个机器上去部署,只修改ip地址 1、…

    Linux 2023年5月28日
    096
  • python 多线程

    python 多线程 多线程流程 导入模块 import threading 通过线程类型创建线程对象 &#x7EBF;&#x7A0B;&#x5BF9;&a…

    Linux 2023年6月13日
    081
  • LeetCode-补充题9. 36进制加法

    题目来源 题目详情 36进制由0-9,a-z,共36个字符表示。 要求按照加法规则计算出任意两个36进制正整数的和,如1b + 2x = 48 (解释:47+105=152) 要求…

    Linux 2023年6月7日
    0105
  • MySQL实现备份(3)之xtrabackup 备份工具

    xtrabackup工具: 是percona公司开发的一个用于对MySQL进行备份的工具。相对于mysqldump,xtrabackup支持增量备份、差异备份等。 使用手册;htt…

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