树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...

本节书摘来自华章计算机《树莓派Python编程指南》一书中的第3章,第3.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 在结构体中存储值

除了简单数据类型,Python还允许我们将数据用不同方式组合起来创建结构体。最简单的结构体是sequences(线性结构)。它将信息一个接一个地存储起来。它分为有两类:lists(列表)和tuples(元组)。多数情况下,它们是相似的。

来看接下来的例子:

我们用方括号将数字括起来构成列表,用圆括号将数字括起来构成元组。到现在为止,它们两个工作起来都是一致的。在结构体名后面跟方括号,方括号中填下标就可以访问单个元素。注意下标从0开始,因此list_1[0]和tuple_1[0]可以访问线性结构中的第一个元素。

当你去更新元素时就会发现列表和元组间的差别:

https://yqfile.alicdn.com/20048aa63e74a35f2274a62cd11a0975f79c7de1.png" >

可见,你可以更新列表中的单个元素,却不能更新元组中的单个元素。然而,你可以一次性覆盖元组中的所有元素。这时,可以告诉Python将变量tuple_1赋一个新值以取代旧值。

https://yqfile.alicdn.com/8c47416e9c6bfc4fdafbf64559be6868b177adc2.png" >

上一节中我们提到的strings就是一串字符,它的操作符可以用于列表和元组。下面继续以list_1和tuple_1为例:

参考表3-3,复习下我们可以在这里使用的字符串操作。

列表和元组中的元素可以是任意数据类型,包括列表和元组自身。如果愿意,你可以创建列表的列表的列表的列表。当然,如果真的这样做了,你的代码将会变得异常难懂。但列表的列表,通常会比较有用。你可以把它当做一个二维表:

你可以通过主列表和子列表索引来获取元素:

从表

3-4中可以看出来为什么它可以当做二维表。

表3-4 二维列表示例

https://yqfile.alicdn.com/cd8226a1a63eaf62e30c783f4009c27b2a47f2a6.png

" >

有许多方法可以用来操纵列表。表3-5给出了常用的方法。

这里的多数例子都和我们之前遇见的不一样,因为它们(除了index()和sort())改变了list_3的值而不是返回一些值。例如,在Python解释器中运行第一个例子,当然,你需要额外的一行来显示list_3的值。

https://yqfile.alicdn.com/6cb63d138fc6f51c08720e0bf9f3d06145c5ae81.png" >

然而,index()和count()仅仅返回一个值:

pop(x)有点特殊,因为它一次做了两件事。首先,它返回列表中第x个位置的元素值,同时它还从列表中删除了该元素。试着运行下面的例子,感受下它是如何工作的:

https://yqfile.alicdn.com/7142fc02e637d0569b0ab5eca9415a788d7a432f.png" >

上面说过,元组除了不能被修改,它和列表非常类似。所有用于列表操作,只要不改变元素值,都可以用于元组:

3.2.1 字典和集合中的非序列元素

你可以认为列表和元组是元素的集合,每个元素都对应了其中的一个下标。例如,在列表[“a”, “b”, “c”, “d”]中,a的下标是0,b的下标是1,以此类推。然而,当你想用非数字的下标时该怎么做呢?例如,你想要创建一个数据结构,把朋友的昵称和真实名字关联起来,如:

https://yqfile.alicdn.com/33c411b6c7f863336f6a27e8d9682ab004ea94db.png" >

在Python中,可以使用通过花括号来定义的字典(dictionary)。你可以使用下列语句创建字典real_name:

字典中的元素称为键值对(key/value pair),其中第一部分(本例中的昵称)是键(key),第二部分(全名)是值(value)。只需要给定一个新key及其对应的值就可以在字典中新加元素:

你可能想知道为什么需要下标或者键。实际上,这些并不是必需的。Python中的集合(set)允许你把一堆数据放在一起而不用指定下标或序号。例如:

可以看出,Python使用in操作来测试给定的值是否在集合中。还有些其他操作可以用到集合中。参见表3-6。

表3-6 集合的操作(例子中使用了先前定义的集合)

操作符 含义 例子

返回两个集合共有的元素

合并两个集合中的元素

set_1中存在set_2中不存在的元素

set_1或set_2中存在的元素,不包括两个集合共有的元素

https://yqfile.alicdn.com/74cd9f8997c3d3c79c0f3f820a3dd6e47893f65a.png

" >

3.2.2 知识测试

下面的Python语句是什么意思?试想一下,然后将它们输入Python解释器检验下自己的判断。提示:有一些语句会导致错误。

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

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

相关文章

java上传csv错误信息_java处理csv文件上传示例详解

前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理。ReadCsvUtil工具类package com.hanfengyeqiao.gjb.utils;import java.io.*;import java.util.*;/*** csv工具类*/public cla…

Java 数据库进度条_java进度条

练习JProgressBar结合Timer使用。代码如下:package luojing;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Timer;import java.util.TimerTask;public class NewClass{static JProgressBar jpb null;static JButton jb null;…

暗金色 rgb_杜伽TAURUS K310樱桃RGB红轴体验:做工精良、手感优秀

前言DURGOD杜伽的机械键盘一直以简约的外形和优秀的手感而备受好评。笔者之前用过杜伽的K310、K320两个系列的多把键盘,对其非常熟悉,外形简约大方,手感、灯效也比较满意。正因如此,这次刚刚入手了一把杜伽K310 RGB樱桃红轴&#…

vim 显示行号_Vim给文件加行号,这通惊为天人的操作没sei了!文末天书慎点

引言一般 Vim 使用 :set number 命令,在编辑器显示行号。本文展示了如何将行号插入到正文中,或者只插入到段落中。此外,还提供了打印行号的选项(Vim 可以打印带有数字的行,并且不需要文件有数字)。Vim可以使用 :s 命令在每行之前插…

java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...

Java中创建String 对象的方法有哪些发布时间:2020-11-25 16:45:30来源:亿速云阅读:71作者:Leah这篇文章将为大家详细讲解有关Java中创建String 对象的方法有哪些,文章内容质量较高,因此小编分享给大家做个参…

bvp解算器是什么_对数小史,以及为什么ln x的导数是1/x

为什么 lnx 求导是 1/x?​www.zhihu.com现代的数学体系——包括一般的高中和大学教学,一般都将“对数函数”定义为“指数函数”的反函数。不过,鲜为人知的是,在数学史上,“对数”这个概念反而比“指数”出现的更早&…

supermap iserver java 6r许可_SuperMap iserver Java 6R 在 linux 上安装和配置 | 学步园

一.安装JDK1.进入到放置JDK目录下输入命令:./jdk-6u14-linux-i586.bin 开始安装jdk ,安装的时候会让你输入yes(如果提示你权限不够的话 可以输入命令:chmod 755 jdk-6u14-linux-i586.bin 改变权限)2.配置java运行环境 这里我采用的是编写一个…

vb中怎么使图片适应框的大小_叮!VB考前练习了解一下?

1、Visual Basic窗体设计器的主要功能是(C )。A) 画图B) 编写源程序代码C) 建立用户界面D) 显示文字解析:Visual Basic窗体设计器简称窗体(Form),是应用程序最终面向用户的窗口,它对应于应用程序的运行结果。各种图形、图像、数据等都是…

苹果切换输入法_日语输入法哪个好

在初学日语的时候经常会遇到一些不认识的词,想查一下这个词是什么意思,应该怎么输入呢?尝试过许多软件之后,テツ为大家总结了一些认为比较好用的输入法百度IME输入法。下载安装后的切换非常简单,在右下角输入法处切换至JP日语即可…

开源社交系统java_JAVA 开源 SNS 社交系统 JEESNS V0.8 发布

JAVA 开源 SNS 社交系统 JEESNS V0.8 发布2017.02.17 JEESNS V0.8升级说明后台界面全新升级后台增加微博搜索功能增加了会员操作日志、会员动态微博、微博评论增加会员功能群组帖子增加置顶、精华功能限制微博输入内如字数、输入内容时字数统计微博增加Emoji表情增加微博、文章…

python 10个100以内随机整数编辑_你要偷偷的学Python,然后惊呆所有人(第五天) - python阿喵

标题无意冒犯,就是觉得这个广告挺好玩的前言前期回顾:你要偷偷学Python,然后惊呆所有人(第四天)在第四天的时候,我们接触了Python的模块调用,这也是Python能够火起来的一大优势。我们还实践了csv模块。不过冷静下来想想…

广义线性模型_广义线性模型(第六章补充)

上一篇文章(第六章)主要介绍了最大熵模型,并从中推导出逻辑斯谛回归,感觉意犹未尽。在复习了CS229 Lecture note之后,我决定重新整理思路:从广义线性模型的角度来看逻辑斯谛回归。最后,基于样本…

安卓开发怎么调用photopicker_谷歌出手整顿安卓应用程序乱象:无良权限的APP们再见了!...

相信你在使用安卓手机的时候一定有过这样的经历,在明确拒绝了软件调用电话、手机通讯录、短信等敏感内容的访问权后,APP表示无法继续运行然后强退。如果这款APP不具备可替代性,恐怕最终结果是,用户不得不选择妥协。关于应用程序度…

react router官方文档_阿里开源可插拔 React 跨端框架 UmiJS

点击上方“开发者技术前线”,选择“星标”18:30 在看 真爱作者:Tamic | 编辑: 可可阿里之前开源:阿里闲鱼开源 Flutter 应用框架 Fish Redux! 今天介绍的是前端React 框架- UmiJS。介绍umi官方宣称是一个…

java约瑟夫环迭代器_Josephus约瑟夫环问题的不同实现方法与总结

/************************************************************************//* Josephus问题——数组实现 *//************************************************************************/#include #include int Josephus(int t…

ios 下拉放大 上拉缩小_为啥鞠婧祎发量这么多?截图放大十倍她的“发缝”,网友:真密集...

​鞠婧祎,这位女明星真的是黑,红,黑,红。这不是秘密。鞠婧祎最近几天的确很受欢迎。甚至头发也受到质疑。一般而言,娱乐业的演艺人员由于多年来的工作时间安排不规则以及采取巴拉克拉法帽的行为,通常都有使…

python背景图片加载代码_2019.12.05-背景图片设置代码

css背景.box{width: 320px;height: 160px;border:5px solid #000;margin-bottom: 50px;background-color: gold;background-image: url(images/new.png);font-size: 40px;color: red;}.box2{width: 320px;height: 160px;border:5px solid #000;margin-bottom: 50px;background-…

苹果无线耳机使用方法_苹果官方:如果 AirPods Pro 出现这些问题,我们将免费更换!...

今年的 iPhone 12 系列并没有像往常一样附赠充电器、耳机,而受到同样待遇的还有 iPhone 11 系列,现在的 iPhone 11 系列不仅包装与 iPhone 12 系列一样变小了,而且同样也不再附赠充电器和耳机,但 iPhone 11 系列价格更低了。根据数…

opencv4.5.0安装包_UG NX12.0 软件介绍(附安装包)

【软件名称】 UG NX12.0【文件大小】 5.67GB 【语言支持】 简体中文【系统类型】 64位【兼容系统】 Win7 / Win8 / Win10【下载链接】 文末扩展链接获取软件简介:西门子公司推出了最新版的Siemens NX 12.0版本(UG12.0),该软件提供了当今市场上唯一可扩展…

java国际化bundle_Java国际化(i18n)ResourceBundle类

ResourceBundle类用于存储区域设置敏感的文本和对象。 通常使用属性文件来存储特定于语言环境的文本,然后使用ResourceBundle对象来表示它们。 以下是在基于Java的应用程序中使用特定于语言环境的属性文件的步骤。第1步:创建属性文件假设我们需要英文语言环境的属性…