给妹子讲python-S01E04容器遍历和列表解析式

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文将讲述容器遍历和列表解析式。

【要点抢先看】

1.遍历容器的基本方法
2.列表解析式和字典解析式的用法
【妹子问】前面三集我们学习了三种基本的容器,现在我有一个疑问,我们如何依次访问容器中的所有元素呢?

好问题,那这一集我们就初步学习如何遍历这些容器。

这个容易,python里也用for语句,但用起来比C语言里的语法更简洁一些,我们看看列表迭代的例子:

for x in [1,2,3]:
    print(x)

1
2
3

字典因为涉及到键和值两个元素,稍微有一些不同,我们举两个常用的方法

第一种方法,通过遍历键来索引对应的值

D = {'a':1, 'c':2, 'b':3}
for k in D:
    print('{}--->{}'.format(k,D[k]))

c--->2
a--->1
b--->3

再说说第二种方法。

用字典的items方法可以返回可迭代对象,通过对这个可迭代对象进行逐次迭代,就能获取其每一个键值对的元组,然后,即可同时取出键和值了。

D = {'a':1, 'c':2, 'b':3}
for k,v in D.items():
    print('{}--->{}'.format(k,v))

c--->2
b--->3
a--->1

【妹子说】python中对于容器的遍历看上去很简洁,那这一集标题中的列表解析式是干什么用的?

列表解析式是python中的一个亮点语法。本质上就是用列表来构建列表,通过对已有列表中的每一项应用一个指定的表达式来构建出一个新的列表。列表解析式的优势是编码简单,运行起来很快。

列表解析式的三个核心要素是:

1.作用于输入序列的运算表达式;

2.对输入序列的循环表达式;

3.对输入序列的过滤条件,其中过滤条件是可选的。

【妹子说】别光说一二三,来举个例子说说

比如我们想要用列表a生成列表b,其中列表b中的每个元素都是a中对应元素的二次方

a = [1,2,3,4,5,6,7,8,9,10]
b = [x**2 for x in a]
print(b)

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这个例子中,输入序列是a,运算表达式是x**2,循环表达式是for x in a。这个例子没有使用过滤条件,因此就使用了列表a中的所有元素来构造列表b,如果我们只想用列表a中所有能被3整除的元素来构造列表b呢,那就得用上过滤条件了。

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = [x**2 for x in a if x % 3 == 0]
print(b)

[9, 36, 81]

同样,对于字典也有同样的用法。

字典解析式,可以用字典以及列表等这些可以迭代的数据类型,来构造一个新的字典。

先看用字典构造字典

D1 = {'a': 1, 'b': 2, 'c': 3}
D2 = {k: v*2 for (k, v) in D1.items()}
print(D2)

{'b': 4, 'a': 2, 'c': 6}

再举一个用列表构造字典的例子:

D = {c:c*4 for c in ['a', 'b', 'c', 'd']}
print(D)

{'d': 'dddd', 'a': 'aaaa', 'c': 'cccc', 'b': 'bbbb'}

【妹子说】python容器遍历的语法看上去简洁而清爽。解析式呢,我感觉是遍历语法的一种更高级的展现和应用,使用简洁,而且可读性也比较强。这一集在前面几集的基础上,我感觉是一个总结和提升。

原文发布时间为:2018-07-24
本文作者:酱油哥
本文来自云栖社区合作伙伴“ Python爱好者社区”,了解相关信息可以关注“ Python爱好者社区

相关文章
|
5天前
|
监控 算法 安全
内网桌面监控软件深度解析:基于 Python 实现的 K-Means 算法研究
内网桌面监控软件通过实时监测员工操作,保障企业信息安全并提升效率。本文深入探讨K-Means聚类算法在该软件中的应用,解析其原理与实现。K-Means通过迭代更新簇中心,将数据划分为K个簇类,适用于行为分析、异常检测、资源优化及安全威胁识别等场景。文中提供了Python代码示例,展示如何实现K-Means算法,并模拟内网监控数据进行聚类分析。
28 10
|
23天前
|
存储 算法 安全
控制局域网上网软件之 Python 字典树算法解析
控制局域网上网软件在现代网络管理中至关重要,用于控制设备的上网行为和访问权限。本文聚焦于字典树(Trie Tree)算法的应用,详细阐述其原理、优势及实现。通过字典树,软件能高效进行关键词匹配和过滤,提升系统性能。文中还提供了Python代码示例,展示了字典树在网址过滤和关键词屏蔽中的具体应用,为局域网的安全和管理提供有力支持。
50 17
|
26天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
54 20
|
1月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
184 11
|
1月前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
83 3
|
2月前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
30天前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
16 0
|
2月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
173 5
|
4天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
91 15
|
2月前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
299 78