c++如何让字符串重复输出_python编程入门八:列表、元组、字符串的转换及补充方法...

e6622d16a2043a049b0f2ff832524be4.png

在python中,包括我们之前已经讲过列表、元组及字符串的一些用法了,大家应该可以感觉到,这三种“数据类型”还是有很多相同之处的,所以python中也可以轻易的实现三种类型之间的转换,当然本篇文章还会补充和它们相关的一些方法。

8.1 转换为列表方法–list()

list这个单词我们在讲列表的时候已经很熟悉了,因为定义一个列表时经常是:

list1 = [1, 2, 3, 4, 5]list2 = [6, 7, 8, 9 ,10]

建立一个空列表时也是:

a = list()print(a)

结果:

[]

所以给列表起名为“list1”、“list2”不是没理由的,但是在这里,list()又变成了一种方法,他的作用是可以将一个“可迭代对象”转换为列表,关于迭代,我在一本书上看到了一个比较好理解的说法:所谓迭代,就是重复反馈的过程,其目的通常是为了接近并达到所需的结果。每一次对过程的重复就是一次“迭代”,而每一次迭代得到的结果都会被用来作为下一次的初始值进行下一次“迭代”,所以迭代一般都是反复重复的过程,当然for循环也是一种迭代。
当list()内没有参数时就是建立一个空列表,如果在里面加一个“字符串”参数呢,我们试一下:

a = "HopesLi"b = list(a)print(b)

结果:

['H', 'o', 'p', 'e', 's', 'L', 'i']

是不是很神奇?通过list()方法可以直接将字符串的每一个字符拆分开,然后按照顺序排列在列表里,要知道,这种操作在C语言里可没这么简单;所以这个list()方法一定要记住。

8.2 转换为元组方法–tuple()

上面我们讲了讲“可迭代对象”转换为列表的方法–list(),那这里转换为元组的方法其实也大相径庭,我们也肯定知道定义一个空元组的方式:

a = tuple()print(a)

结果:

()

所以同样可以使用tuple()来将一个“字符串”转换为元组:

a = "HopesLi"b = tuple(a)print(b)

结果:

('H', 'o', 'p', 'e', 's', 'L', 'i')

所以轻易可以看出来tuple()和list()的转换效果基本是一样的。

8.3 转换为字符串方法–str()

说到str(),我们肯定能想到int()、float()等强制类型转换的用法,当然,list()和tuple()感觉也是一种强制类型转换,那这里我们类比一下,既然a = list() 和 b = tuple()分别是定义一个空列表和一个空元组,那么c = str()是不是就代表定义一个“空字符串”?这个说法还挺新奇,当然我们可以试一下到底对不对:

a = str()print(a)print(type(a))

结果:

               #注意,这里是有输出的<class 'str'>

可以看出来,确实和我们想的一样,c = str()确实是定义了一个“空字符串”,但是这样并没有啥意义,所以就鲜有人提起;那么同样的,我们是不是也可以把字符串或元组转换为字符串呢?同样我们也进行尝试:

a = [1,2,3]b = str(a)print(b)print(type(b))

结果:

[1, 2, 3]<class 'str'>

我们这里可能会有个大大的问号,显然通过type获得的数据类型为“字符串”类型是可以理解的,但是为啥输出结果还是“[1,2,3]”呢?不妨我们把当前的“b”再转换回列表试试:

a = [1,2,3]b = str(a)print(b)c = list(b)print(c)

结果:

[1, 2, 3]['[', '1', ',', ' ', '2', ',', ' ', '3', ']']

怎么样?是不是可以理解了,上面输出的“[1,2,3]”其实把每一个符号或数字都变成了字符串中的字符,当我们再将它转换回列表后就能发现每一个符号和数字都被当成了一个列表中的“元素”,好好理解一下。

8.4 取最大值方法–max()

max()方法的作用是返回一个列表或者元组等集合中的最大值,当然,max()内的参数可以是列表、元组也可以是某些数的集合,非常简单,举例说明:

a = [2, 4, 7, 4, 5]print(max(a))b = (3, 8, 9, 2, 4)print(max(b))print(max(4, 8, 9))

结果:

799

结果很明显,我们不再赘述。

8.5 取最小值方法–min()

min()方法的作用就很明显了,返回一个列表或者元组等集合中的最小值,用法和max()方法一样,直接举例说明:

a = [2, 4, 7, 4, 5]print(min(a))b = (3, 8, 9, 2, 4)print(min(b))print(min(4, 8, 9))

结果:

224

同样用法非常简单,但是会不会有人想问:如果是不同类型的参数进行比较结果会是怎样。?我们不妨试一试:

a = [1, "hopes", 4, "li"]print(min(a))

结果:

Traceback (most recent call last):  File "test.py", line 2, in <module>    print(min(a))TypeError: ' not supported between instances of 'str' and 'int'

结果给我们的错误信息很明显:“not supported between instances of ‘str’ and ‘int’”,这代表str和int类型的数据不能够相互比较,也就代表不管是max()还是min(),它们都只能进行相同数据类型的比较。

8.6 获得参数长度方法–len()

len()方法用于返回给定参数的长度,比如:

str1 = "HopesLi"print(len(str1))list1 = [1,2,3]print(len(list1))tuple1 = (2,3,4,5)print(len(tuple1))

结果:

734

同样用法非常明显。

8.7 求和方法–sum()

sum()用于返回参数的总和,参数可以为列表、元组以及集合等,但是既然是可以相加的方法,那么不管是列表、元组还是集合内的元素都需要为可加的数字类型,同样举例说明:

a = [1,3,4]print(sum(a))print(sum(a,5))

结果:

813

当然如果我们尝试把字符串类型加入进行求和呢?

a = [1,3,4,"hopes"]print(sum(a))

结果:

Traceback (most recent call last):  File "test.py", line 2, in <module>    print(sum(a))TypeError: unsupported operand type(s) for +: 'int' and 'str'

错误信息提示“unsupported operand type(s) for +: ‘int’ and ‘str’”不能够将int类型和str类型进行相加(其实都不用试,这是肯定的)。

8.8 排序方法sorted()

sorted()方法用于返回一个排序好的列表或元组,但只能是一个参数,不能把一些数的集合当作参数,举例说明:

a = (2,5,3)print(sorted(a))

结果:

[2, 3, 5]

看到这个结果发现问题了没有,我明明定义的a是一个元组,但是为什么排序输出后是一个列表?没错,这确实是sortes()和sort()方法的区别,sort()是直接原地排序,但是sorted()却是返回一个排序好的“新列表”,也就是说sorted()方法在执行后后自己分配一个内存空间用来存储排序好的新列表。
那接下来我们试一下使用sorted()方法排序多个数字组成的集合会是怎样?

print(sorted(3,5,2))

结果:

Traceback (most recent call last):  File "test.py", line 2, in <module>    print(sorted(3,5,2))TypeError: sorted expected 1 argument, got 3

错误信息提示我们“sorted expected 1 argument, got 3”只能传入1个参数,但我们却给了3个,所以我们这里确定,排序只能传入一个参数,可以是列表、元组等。

8.9 生成二元组方法enumerate()

enumerate()方法用于生成一个由二元组组成的迭代对象,注意,这里返回的是一个迭代对象,迭代对象是啥样的?我们试一下:

str1 = "hopes"print(enumerate(str1))

结果:

如上,迭代对象貌似只是一个“代号”,我们从中好像并不能直接获取什么信息,所以迭代对象我们需要通过for循环将其进行遍历:

str1 = "hopes"print(enumerate(str1))for i in enumerate(str1):    print(i)

结果:

object at 0x10f30c840>(0, 'h')(1, 'o')(2, 'p')(3, 'e')(4, 's')

看吧,我们通过enumerate()方法将str1的所有字符拆分并且以二元组的形式显示出来了,并且我们也明白了一件事:迭代对象需要使用for循环进行“拆包”。

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

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

相关文章

Ubuntu16版本安装截图软件Flameshot

首先打开桌面左侧"Ubuntu软件"&#xff0c;搜索Flameshot,点击安装 将Flameshot的快捷键移到桌面左侧位置 接下来配置截图的快捷键 首先打开"系统设置"&#xff0c;进入键盘: 进入"快捷键"菜单栏&#xff0c;进入"自定义快捷键"&…

通用电气公司要破产?美国慌不慌?

来源&#xff1a;讲武堂由托马斯爱迪生奠基&#xff0c;诞生于1892年的通用电气公司可能会破产&#xff1f;近日&#xff0c;通用电气公司被揭发财务造假&#xff0c;其严重性几乎要超越当年的“安然公司破产事件”。F414涡扇发动机美国会计专家哈里马科波洛斯发表了一份175页的…

更改Ubuntu终端复制和粘贴的快捷键

Ubuntu终端复制和粘贴的快捷键不是ctrlC和ctrlV&#xff0c;用起来很不适应 但我们可以把它们自定义为ctrlC和ctrlV 首先ctrlaltt打开终端&#xff0c;点击终端的菜单栏的"编辑"&#xff0c;"首选项" 在弹出的窗口中进行设置:

Ansys节点数据批量一键导出脚本生成CSV (ansys数据导出利用matlab脚本)

由于ANSYS软件本身的数据后处理、绘图等功能有限&#xff0c;我们常常需要把ansys模拟后的结果数据导出以做进一步的处理分析。为此作者编写了matlab平台的m/p脚本&#xff0c;使得ansys的lis文件可以一键生成整齐对应的CSV文档&#xff0c;便于数据交互&#xff0c;提高工作效…

dp主机_HDMI和DP谁才是未来主流?

相信大家从CRT时代的VGA接口&#xff0c;到现在液晶显示器上常见的HDMI、DP接口都有一些认知了。今天小编就基于目前的接口现状&#xff0c;大胆猜测一下未来的显示器接口趋势。在开始之前&#xff0c;大家要先知道数字信号的显示器呈现画质越高、越精细&#xff0c;对显示器接…

增长放缓,工业机器人产业经历“倒春寒”?

来源&#xff1a;科学网“传统工业机器人发展受到了一定制约&#xff0c;新一代的机器人增长乏力&#xff0c;新的公司在不断倒闭关门&#xff0c;是不是机器人的冬天来了&#xff1f;还是机器人正处于进入春天的过渡&#xff0c;也就是中国所谓的‘倒春寒’&#xff0c;即将迎…

Ubuntu把安装好的软件的快捷方式移到桌面左侧

以QQ为例&#xff0c;在安装完QQ后&#xff0c;点开左侧菜单栏第一个图标&#xff0c;并点击底部菜单栏第二个(像个字母&#xff21;&#xff09;图标&#xff0c;如下图箭头所示 在这里面找到QQ的图标&#xff0c;直接把QQ图标拖到左侧菜单即可

详解Python操作Excel文件

前言 本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法。 常见库简介 1.xlrd xlrd是一个从Excel文件读取数据和格式化信息的库&#xff0c;支持.xls以及.xlsx文件。 地址&#xff1a;http://xlrd.readthedocs.io/en/latest/ xlrd支持.xls&#xff0c;.xlsx文…

linux启动php服务_群晖docker 实现nodejs为后端的简单web服务器 并连接数据库

前情摘要&#xff1a;虽然群晖有web station 作为开发简单网页的服务器首选&#xff0c;但是web station 里面最好用的技术栈还是基于LNMP或者LAMP的php开发环境。对于学习nodejs的同学可能丈二和尚&#xff0c;摸不着头脑&#xff0c;到底如何在web station上运行nodejs&#…

5G时代,工业互联网安全挑战远超消费互联网

来源&#xff1a;工业4俱乐部导读新兴技术带来的机遇同时也面临着挑战。国家互联网应急中心近日发布的《2019 年上半年我国互联网网络安全态势》显示&#xff0c;在工业互联网安全方面&#xff0c;累计监测发现我国境内暴露的联网工业设备数量共计6814个。在上海电气集团的风电…

Ubuntu16.04系统run方式安装nvidia显卡驱动

安装完Ubuntu后系统的字体很大&#xff0c;这是由于显卡驱动造成的 避免sudo apt-get install nvidia-*安装方式造成登录界面循环。 1. ubuntu 16.04默认安装了第三方开源的驱动程序nouveau&#xff0c;安装nvidia显卡驱动首先需要禁用nouveau&#xff0c;不然会碰到冲突的问题…

买书问题

题目&#xff1a;在节假日的时候&#xff0c;书店一般都会做促销活动。由于《哈利波特》系列相当畅销&#xff0c;店长决定通过促销活动来回馈读者。在销售《哈利波特》平装本系列中&#xff0c;一共有五卷&#xff0c;用编号0&#xff0c;1&#xff0c;2&#xff0c;3&#xf…

excel二极管伏安特性曲线_【刘敏蔷老师】半导体二极管的原理及应用

半导体二极管18101113 李莹半导体二极管是十分常见的一种电子器件。像手机屏幕、霓虹灯、收音机等生活常见的器件中都会用到半导体二极管。今天就给大家简单介绍一下半导体二极管的工作原理以及它的应用。No.1什么是二极管&#xff1f;二极管&#xff0c;简单明了的说就是一种只…

SPSS入门学习

文章目录一、初识——初步上手操作安装软件1、了解.sav——数据文件扩展名2、打开SPSS开始上手进行一些简单操作2.1 导入一个系统自带的数据(1.数据编辑窗口&#xff08;SPSS Data Aditor&#xff09;(2.结果输出窗口&#xff08;SPSS Viewer&#xff09;(3.程序语句窗口&#…

PPT讲解机器人产业发展现状与未来展望,重磅资料

来源&#xff1a;直观学机械法律顾问&#xff1a;赵建英律师前段时间咱们分享过王喜文博士做的关于《5G》的PPT&#xff0c;大家反映做的很棒&#xff0c;最近王喜文博士在机械工业出版社又出了一本新书&#xff1a;智能&#xff1a;《新一代人工智能发展规划》解读&#xff0c…

Ubuntu设置鼠标灵敏度

Ubuntu中鼠标的使用经常飘&#xff0c;可以设置鼠标的灵敏度 打开终端&#xff0c;输入以下代码&#xff0c;来查找自己鼠标的设备号。 xinput --list 我的鼠标的设备名是 "Logitech G300s Optical Gaming Mouse" 找到鼠标设备对应的ID号&#xff0c;比如我的是11…

全球工业互联网十大最具成长性技术

来源&#xff1a;经济参考报为准确把握全球工业互联网战略方向&#xff0c;及时跟踪工业互联网创新动态及特征态势&#xff0c;前瞻研判工业互联网产业化重大布局&#xff0c;中国工业互联网研究院任近来调研走访了一批在工业互联网相关技术及产业方面具备领先水平和特色的骨干…

python简单选择排序_python 选择排序

原博文 2018-09-21 23:46 − def select_sort(slist): for i in range(len(slist)): x i for j in range(i, len(slist)): if slist[j] < slist[x]: x j... 相关推荐 2019-12-06 14:02 − 学习提纲 生成指定范围的数值列表&#xff0c;语法格式如下&#xff1a; 生成一个包…

Matlab数据类型及预定义

Matlab数据类型 最新的版本会包括更多的类型。 因为Matlab是面向matrix的编程语言&#xff0c;所以&#xff0c;Matlab将任何一个变量都看作一个matrix。如果是一个数 就是1x1的矩阵。 matlab不需要预定义变量&#xff0c;但是 预定义变量可以使循环程序执行更快。 全局变量…

Nature解析中国AI现状,2030年能引领全球吗?

来源&#xff1a;机器之心《Nature》近日的一篇分析文章表示&#xff0c;中国的人工智能研究在质量上进步很快&#xff0c;但是在高影响的论文、人才和伦理上面还需要追赶美国。中国巨大的人口总量帮助人脸检测技术快速进步。中国不仅仅是世界上人口最多的国家&#xff0c;看起…