1690_Python中的复数数据类型

news2024/11/16 1:18:08

全部学习汇总:GreyZhang/python_basic: My learning notes about python. (github.com)

之前总结的知识中设计的数据类型有整形、浮点、字符串等,这些类型表示的都是一个单独的独立数据对象。在Python有也有表示复数改变的数据类型,也就是下面将要总结整理的袁术、列表以及字典。

元组

元组的语法表达方式是把一系列的数据对象放到小括号里,用逗号分开。在IDLE环境中做相应的演示如下:

>>> t1 = (1,2,1.8,2.0,'a','bcd')

>>> t1

(1, 2, 1.8, 2.0, 'a', 'bcd')

其中,元组的数据成员可以是整形、浮点、字符串等。另外,元组的数据成员的数据类型也可以使元组。例如:

>>> t2 = (t1,123)

>>> t2

((1, 2, 1.8, 2.0, 'a', 'bcd'), 123)

需要注意的式,t1是作为一个整体成为了t2的一个成员而不是,每个t1的成员都是t2的组成成员。

另外,需要注意的是单元素的元组定义的时候需要加上一个逗号分隔符,否则定义的其实是一个单数的数据类型。如下:

>>> t_single = (1)

>>> type(t_single)

<type 'int'>

>>> t_single = (1,)

>>> type(t_single)

<type 'tuple'>

>>> t_single

(1,)

从上面的运行结果可以看出,(1)构造的仅仅是一个整形的数据。

下面再看一下元组的加法,两个元组可以相加构造出一个新的元组对象。例如,接着上面的操作,利用t1以及t_single来构造一个新的元组t3,利用t1以及t2构造新的元组t4:

>>> t3 = t1 + t_single

>>> t4 = t1 + t2

>>> t3

(1, 2, 1.8, 2.0, 'a', 'bcd', 1)

>>> t4

(1, 2, 1.8, 2.0, 'a', 'bcd', (1, 2, 1.8, 2.0, 'a', 'bcd'), 123)

元组元素的遍历

可以使用for循环去遍历元组中的每一个元素,例如设计如下程序:

在IDLE中load执行的结果:

>>> ================================ RESTART ================================

>>>

>>> WalkTuple(t1)

1

2

1.8

2.0

a

bcd

(1, 2, 1.8, 2.0, 'a', 'bcd')

123

元组元素的访问与切片:

如同字符串,元组也支持索引访问以及切片操作。在IDLE环境中进行相关演示如下:

>>> t1 = (1,3,5,7,9)

>>> t1[3]

7

>>> t1[:4]

(1, 3, 5, 7)

>>> t1[0:3]

(1, 3, 5)

需要注意的是元组是不可以修改的。当尝试修改元组中的元素时会报错:

>>> t1[3] = 8

Traceback (most recent call last):

  File "<pyshell#21>", line 1, in <module>

    t1[3] = 8

TypeError: 'tuple' object does not support item assignment

元组的使用(寻找公约数):

设计代码如下:

在IDLE环境中load执行结果:

>>> ================================ RESTART ================================

>>>

>>> Divisors(20,100)

(1, 2, 4, 5, 10, 20)

>>> Divisors(6,12)

(1, 2, 3, 6)

列表

列表在形式上与元组有一定的相似性,但是在单元素定义以及表现形式上有一定的差异。同时,列表是可以修改的。

列表在语法形式上,使用的式方括号括起它的每个元素。而在单个元素的列表定义时,不用担心会跟单数的数据类型发生混淆,因此不用像元组一样增加一个逗号。在IDLE环境中示范如下:

>>> l1 = [1]

>>> l1

[1]

列表的每个元素都可以通过索引的方式访问以及修改,同时也支持切片。在IDLE环境中示范如下:

>>> L2 = [1,2,3,4,'abc','def']

>>> L2

[1, 2, 3, 4, 'abc', 'def']

>>> L2[3]

4

>>> L2[3] = 'abcd'

>>> L2

[1, 2, 3, 'abcd', 'abc', 'def']

>>> L2[:3]

[1, 2, 3]

>>> L2[0:4]

[1, 2, 3, 'abcd']

关于列表的可变性,可以通过一个更加形象的例子来说明:

>>> L3 = ['abc','def']

>>> L4 = [1,2,3]

>>> L5 = [L3,L4]

>>> L6 = [['abc','def'],[1,2,3]]

>>> L5

[['abc', 'def'], [1, 2, 3]]

>>> L6

[['abc', 'def'], [1, 2, 3]]

>>> L3.append(12345)

>>> L5

[['abc', 'def', 12345], [1, 2, 3]]

>>> L6

[['abc', 'def'], [1, 2, 3]]

通过以上例子可以更好地看出列表的可变性。尽管第一次构造后,L5与L6在IDLE中输出的信息是一致的,但是两者并不相同。由于L5是对两个列表L3,L4的引用,因此当L3发生变化时,L5随之变化而L6并不会有任何改变。这有时候会在程序设计时给我们带来很多麻烦,当然,也会带来很多好处。如果我们不期望发生一个被引用列表变化时影响到我们引用它的列表,那我们设计程序的时候最好采用列表拷贝的方式。如下:

>>> L1 = [1,2,3]

>>> L2 = [4,5,6]

>>> L3 = [L1[:],L2[:]]

>>> L4 = [L1,L2]

>>> L1.remove(3)

>>> L3

[[1, 2, 3], [4, 5, 6]]

>>> L4

[[1, 2], [4, 5, 6]]

以上示范中,L3的构造采用了列表的拷贝而L4的构造则是采用了引用。当L1发生变化时,拷贝不受影响但是引用随之变化。

列表元素的增加和删除:

上面的例子中,分别用到了append()以及remove()的方法,这两个方法分别是列表增加以及删除元素的内置方法。

列表的遍历:

如同元组,列表可以通过for循环来遍历每个元素成员,IDLE演示如下:

>>> L4 = [1,2,3,4,'abc','efd']

>>> for each_element in L4:

         print(each_element)

        

1

2

3

4

abc

efd

列表扩展:

这里扩展介绍一种Python中的一种设计方法,把函数作为函数的参数。代码示范1:

IDLE中执行:

>>> ================================ RESTART ================================

>>>

>>> Func1(L1,abs)

1

2.3

5

123

>>> Func1(L1,str)

1

2.3

5

-123

>>> Func1(L1,float)

1.0

2.3

5.0

-123.0

>>> Func2(L1,L2)

1

2.3

5

123

1

2

5

-123

1.0

2.3

5.0

-123.0

这在数据处理上确实是带来很多方便。但是,如果传入函数的接受参数超过一个,其实还有更好的实现方式:

map(func,L1),下面给出一段示例代码:

在IDLE中的执行结果:

>>> ================================ RESTART ================================

>>>

[124, 999, 54]

字典

如果接触过C语言或者Perl等,这种数据类型其实并不让人感到陌生。字典其实就是C或者Perl中的哈希,MATLAB中的map。Python中的字典示例:

>>> d1 = {'mon':1,'tue':2,'wed':3}

>>> d1

{'wed': 3, 'mon': 1, 'tue': 2}

>>> d1['wed']

3

字典元素的增加

>>> d1['thr'] = 4

>>> d1

{'thr': 4, 'wed': 3, 'mon': 1, 'tue': 2}

字典的遍历

>>> for each_element in d1:

         print(each_element)

thr

wed

mon

tue

>>> d1.keys()

['thr', 'wed', 'mon', 'tue']

>>> d1.values()

[4, 3, 1, 2]

字典元素的删除

>>> d1.pop('tue')

2

>>> d1

{'thr': 4, 'wed': 3, 'mon': 1}

通过for循环遍历,得到的其实是字典的key值。这与字典的keys()方法得到的结果是一致的。而通过values()的方法则可以得到字典的各个value。这两个方法得到的返回结果都是列表。

此外,字典的key可以是一种符合形式的数据,比如元组。继续以上的IDLE环境,通过操作示范一下:

>>> d1[(1,2,3)] = 'three values'

>>> d1

{'thr': 4, 'wed': 3, 'mon': 1, (1, 2, 3): 'three values'}

>>> d1[(1,2,3)]

'three values'

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

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

相关文章

Gradio入门到进阶全网最详细教程[二]:快速搭建AI算法可视化部署演示(侧重参数详解和案例实践)

常用的两款AI可视化交互应用比较&#xff1a; Gradio Gradio的优势在于易用性&#xff0c;代码结构相比Streamlit简单&#xff0c;只需简单定义输入和输出接口即可快速构建简单的交互页面&#xff0c;更轻松部署模型。适合场景相对简单&#xff0c;想要快速部署应用的开发者。 …

千云物流 -测试服务器准备 -iotdb,redis

服务器准备 准备CentOS-7-x86_64-DVD-2009.iso镜像 链接&#xff1a;https://pan.baidu.com/s/1rNkfoeHOuYv0OmitWVDNsQ?pwdjanl 提取码&#xff1a;janl 安装服务器需要的命令yum update yum install net-tools.x86_64 -y yum install zip unzip -y ## 安装jdk到当前机器&am…

MySQL查看索引语句:SHOW INDEX 详细讲解

概述&#xff1a; SHOW INDEX语句是MySQL中用于查看表索引信息的语句。它提供了有关表中索引的详细信息&#xff0c;包括索引名称、索引类型、关联的列等。以下是SHOW INDEX的详细说明&#xff1a; 语法&#xff1a; SHOW INDEX FROM table_name [FROM db_name] [WHERE cond…

python海龟库教学

海龟库&#xff1a; 海龟绘图 “小海龟”turtle是Python语言中一个很流行的绘制图像的函数库&#xff0c;想象一个小乌龟&#xff0c;在一个横轴为x、纵轴为y的坐标系原点&#xff0c;(0,0)位置开始&#xff0c;它根据一组函数指令的控制&#xff0c;在这个平面坐标系中移动&…

Visual Studio调试的10个技巧

https://www.cnblogs.com/darrenji/p/3900023.html#e 本篇体验Visual Studio的10个调试技巧&#xff0c;包括&#xff1a; 1、插入断点和断点管理2、查看变量信息3、逐语句F11&#xff0c;逐过程F10&#xff0c;跳出ShiftF114、查看堆栈信息5、设置下一条执行语句6、调试时修改…

API接口的自我阐述

API&#xff08;Application Programming Interface&#xff09;&#xff0c;翻译为应用程序接口&#xff0c;是一套定义程序之间如何通讯的接口。API可以实现软件的可重用性、可维护性和互操作性&#xff0c;同时也可以提升软件的性能和安全性。API接口是一个软件系统中的重要…

案例2:Java图书商城系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

XPM_CDC_HANDSHAKE(UG974)

Parameterized Macro: Bus Synchronizer with Full Handshake&#xff08;参数化宏&#xff1a;具有完全握手的总线同步器&#xff09; MACRO_GROUP: XPMMACRO_SUBGROUP: XPM_CDCFamilies: UltraScale, UltraScale 1、 Introduction&#xff08;介绍&#xff09; 此…

ChatGPT国内可用版-国内chatGPT哪个软件好用

国内chatGPT哪个软件最好用 国内对接ChatGPT软件&#xff0c;让智能的对话变得更加简单便捷&#xff01;ChatGPT是由OpenAI公司开发的最新一代自然语言处理技术&#xff0c;为聊天机器人赋予了更加真实、流畅、智能的语言表达能力。 我们是国内一家专注于人工智能和自然语言处…

手撕源码(一)HashMap(JDK8)

目录 1.使用示例2.new HashMap<>() 解析2.1 加载因子2.2 构造方法 3.put() 解析3.1 原始put(k, v)3.2 计算哈希1&#xff09;为什么要进行二次hash&#xff1f;2&#xff09;二次hash计算示例&#xff1a;3&#xff09;为什么使用 (length-1)&hash 而不是 hash%lengt…

Centos 搭建共享数据发布服务器

Centos 搭建共享数据发布服务器 1. 下载系统镜像2. 制作系统盘3. 制作系统3.1 BIOS设置3.2 安装系统3.3 重做系统 4 配置服务器4.1 挂载硬盘4.2 配置账号4.3 配置samba4.4 配置ftp1. 安装ftp2. 配置ftp 5. 验证5.1 验证ftp5.2 验证samba 共享服务器策略简述&#xff1a; smb提…

耐腐蚀高速电动针阀在半导体硅片清洗机化学药液流量控制中的应用

摘要&#xff1a;化学药液流量的精密控制是半导体湿法清洗工艺中的一项关键技术&#xff0c;流量控制要求所用调节针阀一是开度电动可调、二是具有不同的口径型号、三是高的响应速度&#xff0c;四是具有很好的耐腐蚀性&#xff0c;这些都是目前提升半导体清洗设备性能需要解决…

PXI 24位动态信号数据采集模块软硬件设计方案,支持国产

【IEPE传感器&#xff08;音频测试&#xff0c;噪音测试&#xff0c;振动分析&#xff09;】 符合PXI规范2.2版 24位Sigma-Delta ADC与DAC 采样率最高达432 KS/s&#xff0c;可软件编程 可编程输入范围&#xff1a;40 V&#xff0c;10 V&#xff0c;3.16 V&#xff0c; 1 V&…

Spring Bean的顺序

之前的文章已经讲过&#xff0c;Spring Bean的创建是通过动态代理实现的&#xff0c;防止浪费篇幅&#xff0c;我们直接看Bean的循环创建代码&#xff1b; 这里我们可以看到 Bean 的创建是通过: List<String> beanNames new ArrayList<>(this.beanDefinitionName…

Linux服务使用宝塔面板搭建网站,并发布公网访问 - 内网穿透(1)

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 转载自远程内网穿透的文章&#xff1a;Linux使用宝塔面板搭建网站&#xff0c;并内网穿透实现公网访问 前言 宝塔面板作为简单好用的服务器运维管理面板&#…

el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数

使用el-input-number标签 也可以使用typenumbe和v-model.number属性&#xff0c;两者结合使用&#xff0c;能满足大多数需求&#xff0c;如果还不满足&#xff0c;可以再结合正则表达式过滤 <el-input v-model.number"value" type"number" /> el-i…

孙溟㠭先生篆刻欣赏——“数”

孙溟㠭篆刻作品《数》 孙溟㠭篆刻作品《数》 线条之美可见一斑。游龙戏凤&#xff0c;嬉戏又雅趣。此时溟㠭先生之心境又如何&#xff1f; 人生几多戏谑&#xff0c;世事几多无常&#xff1b;趣心对待&#xff0c;过而无痕。何必拘束&#xff1f;何必强求规矩&#xff1f;突…

测量射频器件噪声系数的三种方法盘点

本文介绍了测量噪声系数的三种方法&#xff1a;增益法、Y系数法和噪声系数测试仪法。这三种方法的比较以表格的形式给出。 在无线通信系统中&#xff0c;噪声系数&#xff08;NF&#xff09;或者相对应的噪声因数(F)定义了噪声性能和对接收机灵敏度的贡献。本篇应用笔记详细阐…

P1043 [NOIP2003 普及组] 数字游戏

题目描述 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单&#xff0c;但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的&#xff0c;在你面前有一圈整数&#xff08;一共 &#xfffd;n 个&#xff09;&#xff0c;你要按顺序…

Java List、Set、Map区别

概述 集合类存放于java.util包中。集合类存放的都是对象的引用&#xff0c;而非对象本身。常见的集合主要有三种——Set(集&#xff09;、List&#xff08;列表&#xff09;和Map&#xff08;映射&#xff09;。List和Set 都实现了 Collection 接口&#xff0c;并且List和Set也…