在python中,我们经常使用列表、字典等数据类型来存储数据或重构一个序列,它们之间也存在一些关联。接下来,我们将对python中常用的几种数据类型进行全面的回顾。区别是一样的。两者都相当于一个容器,具有存储数据的功能。它们可以用for...in循环。不同的是序列存储的是不同类型的数据,而迭代器存储的是算法。sequence是预先存储数据,在获取数据的时候通过循环或者索引来检索数据;而迭代器不需要存储数据,获取数据时通过算法获取下一条数据。序列中的每个数据都需要开辟内存空间;而迭代器则不需要,每次只需要通过算法计算出下一个值即可。从这个角度来看,处理大量数据使用迭代器更合适。序列可以通过索引或键名获取值,而迭代器只能使用next()获取下一个值。变化趋势是从左到右,你可以试着找出一些规律。从数据排序的角度来看,从左到右可以看出是无序的、有序的、规则的(也可以定义为有序的)。从数据操作的灵活性来看,左侧操作更灵活,可以增删改查;右边比较简单,只能查询(注:定义的字符串只能查询,方法生成的字符串不是原始字符串)。如果想关注这些数据类型中的具体方法,可以参考:python的5种数据结构,方法很多,记不住?都在这里了。从定义数据类型的符号来看,也是按照汉字的大小引号来实现的,比如字典|集合就是花括号,列表就是括号,元组就是圆括号,字符串要么是double引号或单引号。数据类型之间的相互转换以上不同的数据类型也可以实现两者之间的相互转换。转换时只需要调用相应的函数即可,如下图所示。下图给出了各个数据类型之间的相互转换和具体例子。从上表可以看出,数据类型是可以相互转换的。总结有以下几点:无论转换什么数据类型,具体的数据类型都是用关键字括起来的,比如把元组转换成列表:list(tuple)转换成字典,需要注意的是每一对数据必须用括号括起来,这样才能正确生成字典的键值对,转换元素时会报错。在转为字符串时需要注意的是,虽然str(data)可以转为字符串,但很多情况并不是我们想要的。我们更想要的是将序列中的元素组合成一个字符串,如果要实现这样的需求,可以使用join()方法来实现。转换为字典时,必须将两个元素组合成一个元组进行转换。为了简单起见,我们可以更方便地使用zip()来形成两个序列的新字典。#通过zip将两个list合并成一个sequence,然后再转换成字典。lst1=['x','y','z']#可以是列表、元组、集合lst2=[123,234,345]print(dict(zip(lst1,lst2)))#output:{'x':345,'y':234,'z':123}虽然str()转换后的数据变成了字符串,但我们更希望的是将序列中的元素组合成一个字符串。然后你可以使用join()方法将其中的元素更改为所需的字符串。#Syntax:"sep".join(seq)#Example:x="".join({'a':123,'b':345})print("x:",x)y=",".join(['java','python','c++'])print("y:",y)z="_".join(("tuple","demo","01"))#输出:x:aby:java,python,c++z:tuple_demo_01#说明:sep为分隔符,seq序列写的方便——推导在上面的数据结构中,有些数据类型也支持推导,推导可以是一个表达式结构从一个可迭代对象构造一个新的可迭代对象。通过推导可以快速实现一个新的序列或生成器,代码也可以更优雅、更快速。为了更加直观,我们可以将不同数据类型所支持的推理总结成一张图。我们只需要记住推导433即可。字典推导#Syntax:{
