python中的组合数据类型、函数详解

 更新时间:2025年11月27日 10:24:48   作者:一招定胜负  
本文介绍了Python中的三种组合数据类型:列表、元组和字典,并详细讲解了字典类型的方法、遍历、维度及项目案例,还介绍了函数的定义、形参、实参、默认参数、可变参数、关键字参数、变量作用范围、global声明、导入其他模块的函数及__name__属性,感兴趣的朋友跟一起看看吧

python的组合数据类型

python里有三种组合数据类型:列表、元组和字典。列表上一篇博客我已经介绍过了。

1、元组

元组和列表是比较相似的,可以存放多种数据类型,只是不能进行删除、添加元素等操作。元组使用形式:

(元素1,元素2,元素3...)

元组类型用tuple表示,可以用tuple()创建一个空的元组或者进行强制类型转换。

2、字典

字典类型也是与列表相似,存放多种数据类型,但是以键值对的方式存放:

{键1:值1,键2:值2,键3:值3,...}

字典中键必须是独一无二的,不能随意修改,因此键的数据类型不能是列表和字典;值可以与相同的,可以是任意数据类型。字典数据类型用dict表示,可以用dict()表示一个空的字典。

a=dict()#创建一个空字典 
a[1]="张三"#创立一个键为1,值是张三的键值对
print(a[1])#打印a[1]键值对

1、字典类型的方法:

.clear():删除字典中元素,得到一个空字典。若要删除整个字典可以使用保留字del。如del a。

.get(参数1,参数2):查询字典中键为参数1的值,若查找成功则返回键对应的值;若失败则返回参数2,如果没输入参数2,则返回none。

.keys():获得字典中所有键的信息。

.value():获得字典中所有的值信息。

.item():获取字典中所有的键值对。

.pop(参数):删除字典中键为参数的键值对,同时返回这个键值对的值。

2、字典的遍历:

之前的博客讲过,print()函数中有一个默认参数end="\n"用来换行,这里我用end=""表示不换行,用end="\t"表示缩进。

3、数据的维度

在python中列表可以表示一维和二维的数据,字典可以表示高维的数据。

4、项目案例:学生投票系统

l=[]  #创建一个列表用于存储学生姓名
while True:
    name=input("请输入投票的名字:")
    if name!="结束":
        l.append(name)
    else:
        break   #while循环来统计投票直到输入结束
b=dict()  #创建一个空的字典
for c in l:
    b[c]=b.get(c,0)+1   #依次遍历列表中的名字,每出现一次,在字典中的值加一
print(b)  #输出字典

函数

函数相当于为了实现特定功能而编写的一个小工具,避免了每次实现该功能都要重复写代码。前面用过的print()是python已经写好的内置函数。我们也可以自定义新的函数,形式如下:

def 函数名(参数):
        代码块
        return 返回值

1、形参与实参:

定义函数时的参数称之为形参,调用函数时输入的函数称之为实参。

2、默认参数:

定义函数时给形参赋的值。这样调用函数的时候,如果没给形参赋值,函数会使用默认参数;如果给这个形参赋了值,会覆盖默认参数。

3、可变参数:

不确定函数中需要接受的参数个数时,可以使用可变参数,可变参数会以元组的数据类型来接受参数。正因为不确定参数的个数,可变参数必须要放在必填参数的右边,确保必填参数接收完数据,再将剩下的数据传给可变参数,形式:*参数。

4、关键字参数:

关键字参数和可变参数类似,区别在于以字典类型来存储接收到的数据,因此传递给关键字参数的数据需要包含键和值,键和值用等号连接。使用形式:**参数。

5、变量作用范围可能产生的问题:

函数中定义的变量为局部变量。①如果函数中没有定义和函数外部定义的全局变量a,函数中可以正常使用全局变量a。②如果函数内部和外部都定义了变量a,但是函数内部先定义局部变量再使用,会正常使用局部变量a。③如果函数内部和外部同时定义了变量a,而且函数先使用变量a,再去定义一个局部变量a,这时运行代码会报错a未被定义:

原因:

Python 中变量的作用域遵循LEGB 原则,对于全局变量(Global)和函数局部变量(Local):

     ①函数内未定义同名局部变量时,会向上查找全局变量;

     ②函数内定义了同名局部变量时,该变量会被标记为局部变量,且 Python没有 “变量提升” 机制(和 JavaScript 不同),必须先定义再使用,否则报错。

6、global声明全局变量

上面变量变量作用范围的问题,其实也是因为虽然局部变量和全局变量同名,但在内存使用的不是同一片空间。在函数内部使用global声明和全局变量a同名的变量,此时局部变量和全局变量a占用同一片存储空间,在函数内部对a进行修改,外部的全局变量a也会随之改变。

7、导入其他模块的函数

如果自己不想写,或者函数很复杂,可以导入他人已经写好的函数,一般在文件开头导入,有两种方式:

①导入文件:import 文件名

   调用方法:文件名.函数()

这种方法相当于在文件首行导入了其他文件的全部代码,执行时,被导入文件的代码会顺序执行,跳过函数部分,当调用函数时,函数才会被使用,相当于把两个文件拼接在一起。

②导入文件中的函数:

        导入文件中指定函数:from 文件名 impact 函数名

        导入文件中全部函数:from 文件名 impact *

        调用方法:函数名()

给导入的函数/文件设置别名:from 文件名 impact 函数名 as 新的函数名

                                                impact 文件名 as 新的模块名

8、_ _name_ _属性

这玩意用来获得当前文件的名称,如果位于主文件会返回“_ _main_ _",如果位于次文件(导入的文件)会返回导入的文件名。此属性一般用来测试当前文件是不是主文件。

9、lambda匿名函数

用于定义简单的函数,且可以作为形参。

使用形式:

        函数名=lambda 参数:函数内代码

到此这篇关于python中的组合数据类型、函数详解的文章就介绍到这了,更多相关python组合数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 在OpenCV里实现仿射变换—坐标变换效果

    Python 在OpenCV里实现仿射变换—坐标变换效果

    这篇文章主要介绍了Python 在OpenCV里实现仿射变换—坐标变换效果,本文通过一个例子给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 部署Django到阿里云服务器教程示例

    部署Django到阿里云服务器教程示例

    这篇文章主要介绍了部署Django到阿里云服务器教程示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Python装饰器入门学习教程(九步学习)

    Python装饰器入门学习教程(九步学习)

    装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。本文给大家介绍Python装饰器入门学习教程(九步学习),对python装饰器相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • 在Python web中实现验证码图片代码分享

    在Python web中实现验证码图片代码分享

    这篇文章主要介绍了在Python web中实现验证码图片代码分享,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 如何查看Mac本机的Python3安装路径

    如何查看Mac本机的Python3安装路径

    这篇文章主要介绍了如何查看Mac本机的Python3安装路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • python第三方库easydict的使用实例详解

    python第三方库easydict的使用实例详解

    在 Python 中当我们需要访问字典中的元素的时候,我们需要使用类似 a['example'] 的形式来进行使用,这个时候就可以使用 easydict 这个模块了,今天通过本文给大家讲解python第三方库easydict的使用,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • python编程普通及类和静态方法示例详解

    python编程普通及类和静态方法示例详解

    普通方法会将实例传入方法当中(通常用self表示),类方法会将类传入方法当中(通常用cls表示),静态方法中传入与类无关的变量。下面将举例详细说明
    2021-10-10
  • 一文带你了解Python中pymysql的使用

    一文带你了解Python中pymysql的使用

    pymysql就是联通mysql实现python窗口与mysql数据库交互的库,十分方便操作,这篇文章将详细说明如何掌握并使用该库,感兴趣的可以了解一下
    2023-02-02
  • Python自动调整PPT文本框内容防止溢出的代码实现

    Python自动调整PPT文本框内容防止溢出的代码实现

    在自动化处理PPT时,文本框内容溢出是一个常见问题,本文将分享一个Python脚本,通过计算文本框容量自动截断文本并添加省略号,确保内容适配文本框尺寸,代码基于python-pptx库,适用于批量处理PPT模板,需要的朋友可以参考下
    2025-04-04
  • pytorch中fuse_modules源码解读

    pytorch中fuse_modules源码解读

    这篇文章主要介绍了pytorch中fuse_modules,fuse_known_modules将给定的模块列表mod_list中的一些常见模块进行融合,返回融合后的模块列表,本文通过实例代码详细讲解,需要的朋友可以参考下
    2023-05-05

最新评论