iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的复杂数据类型怎么使用
  • 838
分享到

Python中的复杂数据类型怎么使用

2023-06-30 17:06:36 838人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python中的复杂数据类型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的复杂数据类型怎么使用”文章能帮助大家解决问题。一、序列:序列是基类类型,序列扩展类

这篇文章主要介绍“python中的复杂数据类型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的复杂数据类型怎么使用”文章能帮助大家解决问题。

一、序列:

序列是基类类型,序列扩展类型包括:字符串、元组和列表

Python中的复杂数据类型怎么使用

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

二、列表(list):[a1,a2],可变数据类型

列表:列表是序列类型的一种扩展,十分常用

1、列表的创建

  • 列表是一种序列类型,创建后可以随意被修改

  • 使用方括号 [] 或list() 创建,元素间用逗号 , 分隔

  • 列表中各元素类型可以不同,无长度限制

hobby_list = [hobby, 'run', 'girl']print(id(hobby_list)) # 4558605960print(type(hobby_list)) # print(hobby_list) # ['read', 'run', 'girl']

如果想初始化个长度为10的列表

list_empty = [None]*10print(list_empty)# [None, None, None, None, None, None, None, None, None, None]

使用range()函数来创建一个列表:

hobby_list = list(range(5))# [0, 1, 2, 3, 4]

2、复合列表和多维列表

hobby_list = ['read', 'run',['girl_name', 18, 'shanghai'] ]print(hobby_list[2][1])#  取出girl的年龄 18

python 创建二维列表,将需要的参数写入 cols 和 rows 即可

list_2d = [[0 for i in range(5)] for i in range(5)]list_2d[0].append(3)list_2d[0].append(5)list_2d[2].append(7)print(list_2d)# [[0, 0, 0, 0, 0, 3, 5], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 7], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

以下实例将3X4的矩阵列表转换为4X3列表:

# 以下实例展示了3X4的矩阵列表:matrix = [    [1, 2, 3, 4],    [5, 6, 7, 8],    [9, 10, 11, 12],]# 以下实例将3X4的矩阵列表转换为4X3列表:transposed=[[row[i] for row in matrix] for i in range(4)]print(transposed)# [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]# 以下实例也可以使用以下方法来实现:transposed = []for i in range(4):    transposed.append([row[i] for row in matrix])print(transposed)# [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

3、列表索引取值

索引序号从0开始。

hobby_list = ['read', 'run', 'girl']# 索引序号      0       1      2print(hobby_list[1])#  取出第二个爱好 <code>run

4、列表修改

可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,

hobby_list = ['read', 'run', 'girl']hobby_list[0] = 'write'

列表方法使得列表可以很方便的作为一个堆栈来使用。堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。

用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。

  • append:在列表ls最后增加一个元素x

  • pop():移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

例如:

stack = [3, 4, 5]stack.append(6)stack.append(7)print(stack)# [3, 4, 5, 6, 7]print(stack.pop())# 7print(stack)# [3, 4, 5, 6]print(stack.pop())# 6print(stack.pop())# 5print(stack)# [3, 4]

三、列表推导式

列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。

每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。

返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。

1、列表推导式书写形式:

  • [表达式 for 变量 in 列表]

  • [表达式 for 变量 in 列表 if 条件]

举例:

print([i for i in range(10)] )  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print([i ** 2 for i in range(10)])  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]  print([0 for i in range(5)])  #[0, 0, 0, 0, 0]name_list = ['nick', 'sean', 'jason', 'tank']for n in [name if name == 'nick' else name + '_a' for name in name_list] :    print(n)  # 'nick', 'sean_a', 'jason_a', 'tank_a'li = [1, 2, 3, 4, 5, 6, 7, 8, 9]print( [x ** 2 for x in li]) # [1, 4, 9, 16, 25, 36, 49, 64, 81]print( [x ** 2 for x in li if x > 5]) # [36, 49, 64, 81]print(dict([(x, x * 10) for x in li])) # {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90} #生成字典vec1 = [2, 4, 6]vec2 = [4, 3, -9]sq = [vec2[i] + vec2[i] for i in range(len(vec))]  # 实现列表相加print(sq)# [6, 7, -3]testList = [1, 2, 3, 4]def mul2(x):    return x * 2print([mul2(i) for i in testList]) #使用复杂表达式或嵌套函数:# [2, 4, 6, 8]

2、列表推导式的嵌套

语句之间是嵌套关系。

左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。

[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]

他的执行顺序是:

for x in range(1,5)    if x > 2        for y in range(1,4)            if y < 3                x*y

实例

print( [ (x, y) for x in range(10) if x % 2 if x > 3 for y in range(10) if y > 7 if y != 8]) #生成元组# [(5, 9), (7, 9), (9, 9)]print([x * y for x in [1, 2, 3] for y in [1, 2, 3]])# [1, 2, 3, 2, 4, 6, 3, 6, 9]

四、列表的基本操作

ls1 = ['python', 123]ls2 = ['java', 456]print(ls1 * 2);  # ['python', 123, 'python', 123] 将列表复制n次。print(ls1 + ls2);  # ['python', 123, 'java', 456] 连接两个列表 name_list = ['nick', 'jason', 'tank', 'sean']del name_list[2]  # 删除索引2位置后的元素 print(name_list)  # ['nick', 'jason', 'sean']del name_list[2:4] # 从列表中删除切片 ,删除第i-j位置的元素 print(name_list)  # ['nick', 'jason']del name_list[:] #清空整个列表print(name_list)  # []del a  # 用 del 删除实体变量:name_list = ['nick', 'jason', 'tank', 'sean']print('tank sb' in name_list)  #  成员运算:in; Falseprint('nick handsome' not in name_list)  # 成员运算:in;Truename_list = ['nick', 'jason', 'tank', 'sean']for name in name_list:  # for循环    print(name)a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']for i in range(len(a)): # 结合range()和len()函数以遍历一个序列的索引    print(i, a[i])# 0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQname_list = ['nick', 'jason', 'tank', 'sean']print(name_list[0:3:2] )  # 切片  ['nick', 'tank']

举例:有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序

stu_info_list = [    {'name': 'nick', 'age': 19, 'sex': 'male'},    {'name': 'egon', 'age': 18, 'sex': 'male'},    {'name': 'tank', 'age': 20, 'sex': 'female'},    {'name': 'tank', 'age': 20, 'sex': 'female'},    {'name': 'egon', 'age': 18, 'sex': 'male'},]new_stu_info_list = []for stu_info in stu_info_list:    if stu_info not in new_stu_info_list:        new_stu_info_list.append(stu_info)for new_stu_info in new_stu_info_list:    print(new_stu_info)

五、列表相关函数

name_list = ['nick', 'jason', 'tank', 'sean']print(len(name_list))  # 4 列表元素个数:len;print(min(name_list))  # jason 返回序列s的最小元素;print(max(name_list))  # tank 返回序列s的最大元素name_list = ['nick', 'jason', 'tank', 'sean']name_list.insert(1, 'handsome') # insert(i,x):在列表的第i位置增加元素x print(name_list)  # ['nick', 'handsome', 'jason', 'tank', 'sean']name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.remove('nick'))  # remove(x):将列表ls中出现的第一个元素x删除 ,None ;print(name_list)  # ['jason', 'tank', 'sean']name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.count('nick'))  # 1  ;统计某个元素在列表中出现的次数name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.index('nick'))  # 0;返回元素所在列表中的索引name_list = ['nick', 'jason', 'tank', 'sean']name_list.clear() # 删除列表中所有元素 print(name_list)  # []name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.copy())  # 生成一个新列表,赋值原列表中所有元素  ['nick', 'jason', 'tank', 'sean']name_list = ['nick', 'jason', 'tank', 'sean']name_list2 = ['nick handsome']name_list.extend(name_list2) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)print(name_list)  # ['nick', 'jason', 'tank', 'sean', 'nick handsome']name_list = ['nick', 'jason', 'tank', 'sean']name_list.reverse() # 将列表ls中的元素反转 print(name_list)  # ['sean', 'tank', 'jason', 'nick']name_list = ['nick', 'jason', 'tank', 'sean']name_list.sort() # 排序,使用用sort列表的元素必须是同类型的 print(name_list)  # ['jason', 'nick', 'sean', 'tank']name_list.sort(reverse=True) # 倒序print(name_list)  # ['tank', 'sean', 'nick', 'jason']

六、元组(tuple):(a1,a2)

1、元组的创建

元组是一种列表类型,一旦创建就不能被修改。

color = (0x001100, "blue", creature) # 使用小括号 () 或 tuple() 创建,元素间用逗号分隔。print(type(color))  # creature = "cat", "dog", "tiger", "human" # 可以使用或不使用小括号。即元组由若干逗号分隔的值组成。print(type(creature))  #

注意与字符串区别:

name_str = ('egon')  # ()只是普通包含的意思name_tuple = ('egon',)  # 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作字符串使用:print(type(name_str))  # print(type(name_tuple))  #

2、元组的操作

索引取值、切片(顾头不顾尾,步长)、长度len、成员运算in和not in、循环、count、index等均同列表,只是不更改值。

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

tup1 = (12, 34.56);tup2 = ('abc', 'xyz')# 以下修改元组元素操作是非法的。# tup1[0] = 100# 创建一个新的元组tup3 = tup1 + tup2;print(tup3)  # (12, 34.56, 'abc', 'xyz')

3、namedtuple(具名元组): Python元组的升级版本

from collections import namedtupleUser = namedtuple('User', 'name sex age') # 定义一个namedtuple类型User,并包含name,sex和age属性。user = User(name='Runoob', sex='male', age=12) # 创建一个User对象print(user.age)  # 12

关于“Python中的复杂数据类型怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Python中的复杂数据类型怎么使用

本文链接: https://www.lsjlt.com/news/330369.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中的复杂数据类型怎么使用
    这篇文章主要介绍“Python中的复杂数据类型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的复杂数据类型怎么使用”文章能帮助大家解决问题。一、序列:序列是基类类型,序列扩展类...
    99+
    2023-06-30
  • Python中的复杂数据类型(list、tuple)
    目录一、序列:二、列表(list):[a1,a2],可变数据类型1、列表的创建2、复合列表和多维列表3、列表索引取值4、列表修改三、列表推导式1、列表推导式书写形式:2、列表推导式的...
    99+
    2024-04-02
  • Java中如何使用复杂数据类型
    本篇文章为大家展示了Java中如何使用复杂数据类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java复杂数据类型用法 (转)[@more@]同简单数据类型的定义一样,Java虚拟机(JVM)还定...
    99+
    2023-06-03
  • Sqoop怎么处理复杂数据类型的导入
    Sqoop可以处理复杂数据类型的导入,如数组、结构体、Map等。在导入数据时,需要使用Sqoop的–as-parquetfile参数...
    99+
    2024-04-02
  • 深入剖析Python数据类型:从基础类型到复杂类型
    Python数据类型全解析:从基本类型到复合类型,需要具体代码示例 概述:在Python编程中,数据类型是非常重要的概念。Python提供了丰富的数据类型,包括基本类型和复合类型。本文将对Python的数据类型进行全面解析,讲解...
    99+
    2024-01-20
    基本类型 复合类型
  • Go 编程复杂数据类型 Map
    目录一、Map 的定义Map 的定义Map 中的 Key二、Map 的操作一、Map 的定义 Go 中的 Map 是一组无需的 K-V 类型的数据,与 Python 中的字典 Dic...
    99+
    2024-04-02
  • java怎么定义复杂类型的数组
    在Java中,可以使用以下语法来定义复杂类型的数组:```java// 定义一个整数类型的二维数组int[][] array = n...
    99+
    2023-08-30
    java
  • 怎么使用Python中的基础数据类型
    本篇内容介绍了“怎么使用Python中的基础数据类型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python中的数据类型Number(数字...
    99+
    2023-06-01
  • Spring中@Value注入复杂类型怎么用
    这篇文章主要为大家展示了“Spring中@Value注入复杂类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring中@Value注入复杂类型怎么用”这篇文章吧。为什么用,分割的字符...
    99+
    2023-06-22
  • 如何使用npm和ASP处理复杂的数据类型和数组?
    随着Web应用程序变得越来越复杂,处理数据的需求也越来越高。在这种情况下,使用npm和ASP来处理复杂的数据类型和数组是非常必要的。本文将为您介绍如何使用npm和ASP处理复杂的数据类型和数组。 一、什么是npm? npm是一个包管理器,它...
    99+
    2023-08-15
    npm 数组 数据类型
  • JavaScript中的数据类型怎么使用
    这篇文章主要介绍“JavaScript中的数据类型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript中的数据类型怎么使用”文章能帮助大家解决问题。一、基本数据类型(原始值类型...
    99+
    2023-06-30
  • Java中复合数据类型怎么用
    这篇文章主要为大家展示了“Java中复合数据类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中复合数据类型怎么用”这篇文章吧。1、Java字符串在 Java 中字符串被作为 St...
    99+
    2023-06-25
  • Python 中怎么利用Pandas处理复杂的Excel数据
    本篇文章为大家展示了Python 中怎么利用Pandas处理复杂的Excel数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。问题缘起pandas  read_excel函数在读取Exce...
    99+
    2023-06-16
  • Go API教程:如何处理复杂的数据类型?
    Go是一种非常流行的编程语言,尤其在Web开发领域中得到了广泛的应用。在使用Go编写API时,处理复杂的数据类型是一个常见的问题。在本文中,我们将介绍如何使用Go处理复杂的数据类型。 结构体 结构体是一种用户自定义的数据类型,它允许我们...
    99+
    2023-06-03
    api 数据类型 教程
  • NoSQL中JSONB数据类型怎么使用
    在NoSQL数据库中,JSONB数据类型通常用于存储和查询复杂的JSON数据。JSONB是一种二进制表示的JSON数据类型,它支持更...
    99+
    2024-04-02
  • python中的数据类型怎么判断
    在Python中,可以使用type()函数来判断一个对象的数据类型。例如: x = 5 print(type(x)) # 输出: ...
    99+
    2023-10-25
    python
  • PostgreSQL中JSONB数据类型怎么使用
    在 PostgreSQL 中,JSONB 是一种用于存储 JSON 数据的数据类型。JSONB 数据类型允许您存储任意结构的 JSO...
    99+
    2024-04-02
  • PostgreSQL中json数据类型怎么使用
    这篇文章主要介绍“PostgreSQL中json数据类型怎么使用”,在日常操作中,相信很多人在PostgreSQL中json数据类型怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL中...
    99+
    2023-07-05
  • 数据库中Decimal类型怎么使用
    数据库中的Decimal类型是一种精确的十进制数类型,用于存储需要保留小数位数的数值。在大多数数据库管理系统中,Decimal类型通...
    99+
    2023-08-14
    数据库 Decimal
  • 怎么在python中使用数值类型
    这期内容当中小编将会给大家带来有关怎么在python中使用数值类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作