Python组合数据类型使用及说明

 更新时间:2026年03月13日 10:04:00   作者:嘻嘻哈哈Man  
本文详细介绍了Python中列表、元组和字典的基本操作,包括创建、遍历、修改、删除元素,以及常见的内置函数和方法,同时,还涉及了字符串和列表之间的相互转换

1、列表

通常使用[ ]将数据 包裹起来创建一个列表。

这种 创建方式适用于对于列表中元素个数及其数值已知时。

列表中的元素的数据类型可以各不相同,列表中的元素也可以是列表

1.1 列表的遍历

list1=["string",23,[1,10]]
#1
for L in list1:
    print(L)
#2
for i in range(len(list1)):
    print(list1[i])

1.2 替换列表

和字符串不同,列表是可变的,可以在列表中指定下标的值对元素进行修改

1.3 增加元素

方法一:使用“+”将一个新列表附加在原列表的尾部。

list1=["string",23,[1,10]]
#追加列表
list1=list+['a','b'];
#重复元素
for i in range(len(list1)):
    list1[i]=list1[i]*2
    print(list1[i])

方法二:使用append()方法向列表的尾部添加一个新元素

list1.append("sda")

方法三:使用extend()方法将一个列表添加在原列表的尾部。

list1.append(['a','b'])

方法四:使用insert()方法将一个元素插入到列表的指定位置。该方法有两个参数,第一个参数为插入位置,第二个参数为插入元素。

1.4 检索元素

使用count()方法计算列表中某个元素出现的次数

list1=["string",23,[1,10],“string”]
list1.count(“string”)

使用index()方法返回某一个元素在列表中的准确位置。若该元素不在列表中将会出错。值得注意的是。若使用该方法的元素在列表中存在相同项,贼返回显示最小index的位置。

1.5 删除元素

1、使用del语句删除某个特定位置的元素。

list1=["string",23,[1,10]]
del list1[1]  #删除列表第二个元素

2、使用remove()方法删除某个特定值的元素。list1.remove(‘x’)从list1中移除最左边出现的数据想x,如果找不到x就产生ValueError。

3、使用pop()方法来弹出指定位置的元素,缺省参数时弹出最后一个元素。弹出空数组将会报错。

如:list1.pop(1)

1.6 字符串和列表的转化

字符串是字符的序列,而列表是值的序列,但字符的列表和字符串并不相同。若要将一个字符串转化为一个字符的列表,可以使用函数list。

由于list是内置函数的名称,所以应当尽量避免使用list作为变量名。list将字符串拆成字符,可以使用split方法拆成单词。

join是split的逆操作。他接收字符串列表,并拼接每一个元素。join是字符串的方法,所以必须在分隔符上调用他,并传入列表作为实参。

t=['you','are','so','handsome']
s=' '.join(t) 

1.7 列表常用的函数

  • cmp(列表1,列表2):若第一个列表大于第二个,结果为1,相反为-1,相同为0
  • len(列表)返回列表中元素的个数
  • max()和min():返回列表中的最大或者最小元素
  • sorted(列表)和resersed(列表):前者的功能是对列表进行排序,默认是按升序排序,还可在列表后面增加一个reverse参数,其等于True则表示按降序排序;后者的功能是对列表进行逆序。
sorted(list)
sorted(list,reverse=True|False)
reversed(list)
  • sum(列表):对数值型列表进行求和运算,对非数值型列表运算则出错

2、元组(tuple)

元组和列表类似,但是元组中的元素不能修改,列表中的元素可以修改。

2.1 元组与列表的区别

元组基本上都是不可改变的列表。元组几乎具有列表所有的特性,除开那些违反不变性的特征。也就是说,没有函数和方法可以改变元组。不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。

如果可能,能用tuple代替list就尽量用tuple。当后续介绍字典类型时,会发现字典的键必须是不可变的,因此元组可以用作字典的键,但列表不能。

语法上,元组就是用逗号分隔的一列值,使用“=”将元组赋给变量

tuple1='a','1','boy'

虽然不是必须,但是元组常常用括号括起来。

tuple1=('a','1','boy')

新建元组的另一种形式是使用内置函数tuple。不带参数时,它会新建一个空元组。

>>> t=tuple()
>>> t
()

但是,要定义一个只有一个元素的tuple,例如:

>>> t=(1)
>>> t
1

则定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义。因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。所以,只有一个元素的tuple定义时必须加一个逗号“,”来消除歧义,即:

>>> t=(1,)
>>> t
(1,)

其他序列(列表和字符串)的操作都可用于元组,除了那些会违反不变性的列表运算符。“+”和“*”运算符同样适用于元组。成员操作(in)和for循环同样适用于元组长度(len)、最大(max)和最小(min)同样适用于元组。

没有任何的操作能更改元组。例如append、extend、insert、remove、pop、reverse和sort不能用于元组。

然而,当元组中存在列表元素项时,就可以使用上述如append等方法修改list中的元素,达到间接修改元组元素的目的。

3、字典

字典是集合不是序列。字典可以看出元素对构成的列表,其中一个元素是键,另一个元素是值。在搜索字典时,首先查找键,当查找到键后就可以直接获取该键对应的值,效率高。

字典是使用{ }定义的。

创建字典使用dict方法

#遍历字典
d={"id":1,"name":"marry","old":20}
for key in d.keys():
    print(key,d[key])

因为字典是无序的,类似于append在尾部添加键—值对的方法是没有任何意义的。

3.5 字典检索

可以试用版in运算符来测试某个特定的键是否在字典中。表达式k in d(d为字典)查找键,而不是值。

查看一个值是不是出现在字典中,可以使用方法values,它返回改字典的所有值的一个集合,然后检索当前值是否在集合中即可。

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果

s1=set([1,2,3])
s2=set([2,3,4])
#交集
#s1.intersection(s2)   s1&s2
print("交集: %s  方法二:%s"%(s1.intersection(s2),s1&s2))

#并集
#s1.union(s2)    s1|s2
print("并集: %s  方法二:%s "%(s1.union(s2),s1|s2))

#差集
#s1.difference(s2) s2.difference(s1)  s1-s2  s2-s1
print(s1.difference(s2),s2.difference(s1),s1-s2,s2-s1)

#对称差
#s1.symmetric_difference(s2)  s2.symmetric_difference(s1)
print(s1.symmetric_difference(s2),s2.symmetric_difference(s1))

#子集和超集
sSet=set([1,2,3])
bSet=set([1,2,3,4,5,6])
print(sSet.issubset(bSet)) #sSet是不是bSet的子集
print(sSet.issuperset(bSet))#sSet是不是bSet的超集

生成器:

杨辉三角

def triangles():
    s=[1]
    while True:
        yield s[:len(s)]
        s.append(0)
        s = [s[i]+s[i-1] for i in range(len(s))] 

n = 0
results = []
for t in triangles():
    results.append(t)
    n = n+1
    if n == 10:
        break
for t in results:
    print(t)   

#print
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

Process finished with exit code 0

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python常见库matplotlib学习笔记之多个子图绘图

    Python常见库matplotlib学习笔记之多个子图绘图

    Matplotlib是Python提供的一个绘图库,通过该库我们可以很容易的绘制出折线图、直方图、散点图、饼图等丰富的统计图,下面这篇文章主要给大家介绍了关于Python常见库matplotlib学习笔记之多个子图绘图的相关资料,需要的朋友可以参考下
    2023-05-05
  • Python pyecharts实时画图自定义可视化经纬度热力图

    Python pyecharts实时画图自定义可视化经纬度热力图

    这篇文章主要为大家介绍了Python pyecharts实时画图自定义经纬度热力图实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • python实现简单图书管理系统

    python实现简单图书管理系统

    这篇文章主要为大家详细介绍了python实现简单图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • python机器学习实现oneR算法(以鸢尾data为例)

    python机器学习实现oneR算法(以鸢尾data为例)

    本文主要介绍了python机器学习实现oneR算法(以鸢尾data为例),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 使用Python实现企业微信通知功能案例分析

    使用Python实现企业微信通知功能案例分析

    这篇文章主要介绍了使用Python实现企业微信通知功能,主要目的是通过企业微信应用给企业成员发消息,通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Python调用JAR包的类和方法详细指南

    Python调用JAR包的类和方法详细指南

    .jar(Java ARchive,Java归档)文件:一种用于分发 Java 类文件(.class 文件)、Java 应用程序和相关资源(如:图像、音频文件、配置文件等)的文件格式,本文给大家介绍了Python调用JAR包的类和方法详细指南,需要的朋友可以参考下
    2025-04-04
  • win10下Python3.6安装、配置以及pip安装包教程

    win10下Python3.6安装、配置以及pip安装包教程

    下面小编就为大家带来一篇win10下Python3.6安装、配置以及pip安装包教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Python与Java交互出现乱码的问题解决

    Python与Java交互出现乱码的问题解决

    在现代软件开发中,跨语言系统的集成已经成为日常工作的一部分,特别是当Python和Java之间进行交互时,编码问题往往会成为导致数据传输错误、乱码以及难以调试的主要原因之一,下面我们来看看如何解决吧
    2025-05-05
  • python中int与str互转方法

    python中int与str互转方法

    最近学习python中的数据类型时,难免联想到java中的基本型数据类型与引用型数据类型。接下来通过本文给大家介绍python中int与str互转,需要的朋友可以参考下
    2018-07-07
  • 使用Python在Word中插入图片并文字环绕的方法

    使用Python在Word中插入图片并文字环绕的方法

    在Word文档中插入图片能够提供更直观的信息,插入图片时,我们还可以调整图片大小,以及设置合适的文字环绕方式,本文将提供两种使用Python在Word文档中插入图片并设置文字环绕的方法,需要的朋友可以参考下
    2024-06-06

最新评论