Python内置了 几种数据结构,元组,列表 字典

1.元组

元组可以由不同的元素组成,所有元素通过圆括号(  )包含起来,并通过逗号","隔开.如变量名 = (元素1,元素2,...),如果a =1,3,56,'abc','aoe',也默认a是元组

每个元素也可以是不同的数据类型,字符串,数字,元组,列表,字典

元组的元素不能修改,也不能删除,可以将元组整个删除,使用del 元组,如删除元组tuple使用del tuple

当元组只有一个元素时,第一个元素后面跟上逗号"," .如,tuple只有一个元素50时 ,tuple = (50,)

元组的元素以索引编号,从0开始

读取单个元素使用元组[m]的方式,m是索引编号,倒数第一个元素元组[-1]

读取多个元素使用"元组[m:n]"的方式,m和n就是索引的序号,代表读取元组从m到n的元素,但不包括n这个元素.例如:元组[1,-1]指索引从1开始到索引为-1但不包含-1的元素.

步长打印 元组[m:n:k],以间隔逗号个数为k读取元组中索引从m到n但不包含n的元素tuple = (1,2,3,4,5,6,7) print(tuple[1:6:2]) 结果:[2,4,6] k=2即间隔两个逗号

读取元组中的列表中的单个元素,使用"元组[m][n]的方式,m是元组中列表的索引,n是列表中元素的索引编号.例如:元组[2][-2]指元组中索引为2的列表中倒数第2个元素.

读取元组中列表或元组中的多个元素,使用"元组[x][m:n]"的方式,x是元组中列表/元组的索引,m:n即列表/元组中从索引为m到n但不包含n的元素.

元组的合并:tuple = tuple1+tuple2

读取结果:看最终取自哪里,是单个还是多个元素,如果单个元素,那么读取结果是该元素(可以是字符串,数字,元组,列表,字典),如果是多个元素,那么若多个元素最终取自列表,读取结果是多个元素组成的列表,若多个元素最终取自元组,那么读取结果是多个元素组成的元组

实例代码如下:

1 a = 1,3,56,'abc','aoe'

2 print(type(a))3 print(a)4 m = 1,5 n = 1

6 print(type(m))7 print(m)8 print(type(n))9 print(m*3)10 print(m)11 #运行结果

12

13 (1, 3, 56, 'abc', 'aoe')14

15 (1,)16

17 (1, 1, 1)18 (1,)

1 变量名 =(元素1,元素2,...)2 tuple = (1,2,3,[4,5,6,7,8,9],{"A":"abc","B":"789","C":"NBA"},(11,22,'monkey','pig'))3 print(tuple[3])4 print(tuple[3][-1])5 print(tuple[3][1:5])6 print(tuple[4])7 print(tuple[4]["C"])8 print(tuple[5])9 print(tuple[5][1:4])10 #运行结果如下

11 [4, 5, 6, 7, 8, 9]12 9

13 [5, 6, 7, 8]14 {'A': 'abc', 'B': '789', 'C': 'NBA'}15 NBA16 (11, 22, 'monkey', 'pig')17 (22, 'monkey', 'pig')

1 tuple1 = (12, 34.56)2 tuple2 = ('abc', 'xyz')3 tuple3 = tuple1+tuple24 print(tuple3)5 #运行结果

6 (12, 34.56, 'abc', 'xyz')

元组常用的方法/函数:

①排序sorted(tuple):不支持字符串,元组元素不能修改,删除.使用sorted()排序后,得到的是一个列表,但是元组本身并没有因此变化

②最大值max(tuple)

③最小值min(tuple)

④长度len(tuple)

⑤重复tuple*n

1 tuple = (12, 34.56,13,5)2 list =sorted(tuple)3 print(type(tuple))4 print(tuple)5 print(type(list))6 print(list)7 print(len(tuple))8 print(max(tuple))9 print(min(tuple))10 #运行结果

11

12 (12, 34.56, 13, 5)13

14 [5, 12, 13, 34.56]15 4

16 34.56

17 5

1 a =(1,3,56,'abc','aoe')2 print(a)3 print(a*3)4 print(a)5 #运行结果

6 (1, 3, 56, 'abc', 'aoe')7 (1, 3, 56, 'abc', 'aoe', 1, 3, 56, 'abc', 'aoe', 1, 3, 56, 'abc', 'aoe')8 (1, 3, 56, 'abc', 'aoe')

1 #python数据类型之元组练习

2 L1 = (1,2,3,'A','B','C')3 L2 = (1,2,3,4,5,6)4 L3 = ('A',)#元组只有一个元素时需要加逗号","

5 L4 = 'A','B','C','D','E'

6 print(L1[1])#打印元组L1中索引为1的元素

7 print(L1[2:5])#打印(截取)元组L1中索引从2到5,但不包含索引为5的元素

8 print(L1[2:])#打印(截取)元组L1中索引从2开始到结束的元素

9 print(L1[:5])#打印(截取)元组L1中索引从0开始到5,但不包含索引为5的元素

10 print(L1[-3])#打印元组L1中倒数第三个元素

11 print(L1[:-3])#打印元组L1中索引从0开始到倒数第3(不含倒数第3)的元素

12 print(L1)#打印元组L1

13 print(L1[0:])#打印元组L1

14 print(L1[:])#打印元组L1

15 print(L1[:6])#打印元组L1

16 print(L1+L2)#元组的组合

17 L5 = L1+L2#元组的拼接

18 print(L5)19 print(L4)20 print(L1*3)#元组的重复

21 print(len(L2))#打印元组L2的长度

22 del L2#元组的元素不可以修改,也不可以删除,可以将整个元组删除

23 #运行结果

24 2

25 (3, 'A', 'B')26 (3, 'A', 'B', 'C')27 (1, 2, 3, 'A', 'B')28 A29 (1, 2, 3)30 (1, 2, 3, 'A', 'B', 'C')31 (1, 2, 3, 'A', 'B', 'C')32 (1, 2, 3, 'A', 'B', 'C')33 (1, 2, 3, 'A', 'B', 'C')34 (1, 2, 3, 'A', 'B', 'C', 1, 2, 3, 4, 5, 6)35 (1, 2, 3, 'A', 'B', 'C', 1, 2, 3, 4, 5, 6)36 ('A', 'B', 'C', 'D', 'E')37 (1, 2, 3, 'A', 'B', 'C', 1, 2, 3, 'A', 'B', 'C', 1, 2, 3, 'A', 'B', 'C')38 6

2.列表

列表和元组很相似,主要差别在于列表的元素可以增加,修改和删除,而元组是不行滴!

列表的元素由[  ]括起来,元素间用逗号","隔开.

列表中的元素可以是数字,字符串,列表,元组,列表,字典

列表的每个元素也可以是不同的数据类型,字符串,数字,元组,列表,字典

列表的元素以索引编号,从0开始

读取单个列使用"列表[m]"的方式,m是索引编号,倒数第一个元素"列表[-1]"

读取多个元素使用"列表[m:n]"的方式,m和n就是索引的序号,代表读取列表从m到n的元素,但不包括n这个元素.例如:列表[1,-1]指索引从1开始到索引为-1但不包含-1的元素.

步长打印 列表[m:n:k],以间隔逗号个数为k读取列表中索引从m到n但不包含n的元素list = [1,2,3,4,5,6,7] print(list[1:6:2]) 结果:[2,4,6] k=2即间隔两个逗号

读取列表中的元组或列表中的单个元素,使用"列表[m][n]的方式,m是列表中列表/元组的索引,n是列表/元组中元素的索引编号.例如:列表[2][-2]指列表中索引为2的列表/元组中倒数第2个元素.

读取列表中中列表或元组中的多个元素.使用"列表[x][m:n]"的方式,x是列表中列表/元组的索引,m:n即列表/元组中从索引为m到n但不包含n的元素.

列表的合并:list1 = list1+list2(列表可以修改)  ,或者list1.extend(list2)

读取结果:看最终取自哪里,是单个还是多个元素,如果单个元素,那么读取结果是该元素(可以是字符串,数字,元组,列表,字典),如果是多个元素,那么若多个元素最终取自列表,读取结果是多个元素组成的列表,若多个元素最终取自元组,那么读取结果是多个元素组成的元组

1 变量名 =(元素1,元素2,...)2 list = [1,2,3,[4,5,6,7,8,9],{"A":"abc","B":"789","C":"NBA"},(11,22,'monkey','pig')]3 print(list[3])4 print(list[3][-1])5 print(list[3][1:5])6 print(list[4])7 print(list[4]["C"])8 print(list[5])9 print(list[5][1:4])10 #运行结果

11 [4, 5, 6, 7, 8, 9]12 9

13 [5, 6, 7, 8]14 {'A': 'abc', 'B': '789', 'C': 'NBA'}15 NBA16 (11, 22, 'monkey', 'pig')17 (22, 'monkey', 'pig')

列表常用方法/函数

1.增删改的相关语法:

①增加元素list.append(元素) :调用列表的添加方法加入元素,并将元素添加到列表最后.其中增加的元素可以是任何数据类型

②插入元素list.insert(索引位置,元素):调用列表的插入方法加入元素到指定的索引位置,之后的元素索引位置依次向后瞬移

③移除元素list.remove(元素):调用列表的移除方法删除元素,之后的元素索引位置依次向前瞬移

④修改元素list[n]=元素 将列表中索引为n的元素赋值新元素

⑤删除元素del list[n] 删除列表中的元素.删除整个列表:del list

⑥列表的合并:

1.list1.extend(list2)    将list2中的元素扩展到list1中,并将list2的元素放到list1元素的后面

2.list1 = list1+list2    直接通过列表相加的方法并重新赋值到列表1中

实例代码如下:

1 a = [1,2,3,'a','abc','dnf']2 a.append(235)3 print(a)4 a.remove(235)5 print(a)6 a.insert(2,4)7 print(a)8 a.insert(6,'xyz')9 print(a)10 a.insert(8,'888')11 print(a)12 a[-1] = '999'

13 print(a)14 print(a[3:7])15 print(a[0:-1])16 #运行结果:

17 [1, 2, 3, 'a', 'abc', 'dnf', 235]18 [1, 2, 3, 'a', 'abc', 'dnf']19 [1, 2, 4, 3, 'a', 'abc', 'dnf']20 [1, 2, 4, 3, 'a', 'abc', 'xyz', 'dnf']21 [1, 2, 4, 3, 'a', 'abc', 'xyz', 'dnf', '888']22 [1, 2, 4, 3, 'a', 'abc', 'xyz', 'dnf', '999']23 [3, 'a', 'abc', 'xyz']24 [1, 2, 4, 3, 'a', 'abc', 'xyz', 'dnf']

1 1 a = [1,2,3,('a','b','c')]2 2 b = [4,5,6,['x','y','z']]3 3 c = [444,555,666,(7,8,9)]4 4a.extend(b)5 5 print(a)6 6 c = b+c7 7 print(c)8 8

9 9 #运行结果

10 10 [1, 2, 3, ('a', 'b', 'c'), 4, 5, 6, ['x', 'y', 'z']]11 11 [4, 5, 6, ['x', 'y', 'z'], 444, 555, 666, (7, 8, 9)]

1#python数据类型之列表练习

2 L1 = [1,2,3,'A','B','C']3 L2 = [1,2,3,4,5,6]4 print(L1[1])#打印列表L1中索引为1的元素

5 print(L1[2:5])#打印(截取)列表L1中索引从2到5,但不包含索引为5的元素

6 print(L1[2:])#打印(截取)列表L1中索引从2开始到结束的元素

7 print(L1[:5])#打印(截取)列表L1中索引从0开始到5,但不包含索引为5的元素

8 print(L1[-3])#打印列表L1中倒数第三个元素

9 print(L1[:-3])#打印列表L1中索引从0开始到倒数第3(不含倒数第3)的元素

10 print(L1)#打印列表L1

11 print(L1[0:])#打印列表L1

12 print(L1[:])#打印列表L1

13 print(L1[:6])#打印列表L1

14 print(L1+L2)#列表的组合

15 print(L1*3)#列表的重复

16 print(len(L2))#打印列表的长度

17 L2[0] = 'AOE'#列表的值可以修改,将所索引为0的元素更改为'AOE'

18 del L2[5]#列表的元素可以删除,将索引为5的元素删除

19 print(L2)20 #运行结果

21 2

22 [3, 'A', 'B']23 [3, 'A', 'B', 'C']24 [1, 2, 3, 'A', 'B']25 A26 [1, 2, 3]27 [1, 2, 3, 'A', 'B', 'C']28 [1, 2, 3, 'A', 'B', 'C']29 [1, 2, 3, 'A', 'B', 'C']30 [1, 2, 3, 'A', 'B', 'C']31 [1, 2, 3, 'A', 'B', 'C', 1, 2, 3, 4, 5, 6]32 [1, 2, 3, 'A', 'B', 'C', 1, 2, 3, 'A', 'B', 'C', 1, 2, 3, 'A', 'B', 'C']33 6

34 ['AOE', 2, 3, 4, 5]

3.字典

字典由一系列"键":"值"组成,每一组可以理解为一个元素,并通过{    }包含起来,创建字典语法格式:dictionary = {键1:值1,键2:值2,键3:值3,.......}

字典中的键是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一,值可以取任何数据类型。

键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行,因为列表是可变的嘛!

字典内的元素没有顺序,所以不能通过下标引用,必须通过键来访问

访问单个元素:字典["key"]

访问全部元素:字典

访问字典中没有的键会输出错误

字典的拼接:dict1.update(dict2),将字典dict2合并到字典dict1之中,如果dict2中存在与dict1中相同的键,那么该键会被替换成dict2的值.

1 m = {"a":1,"b":2,"c":3,"d":"nba"}2 print(m["a"])3 print(m["d"])4 #运行结果

5 1

6 nba

字典的增删改:

字典的增加和修改的语法一样,都是通过给某个键进行对应的赋值,当键对应的值存在时将原值替换为新的赋值,当键不存在时创建一个新的键值对.

1 n = {"a":1,"b":2}2 n["c"] = 3

3 n["a"] = 'x'

4 print(n)5 #运行结果

6 {'a': 'x', 'b': 2, 'c': 3}

字典的拼接:dict1.update(dict2),将字典dict2合并到字典dict1之中,如果dict2中存在与dict1中相同的键,那么该键会被替换成dict2的值.

与列表的合并区别在于,列表可以合并重复的数据并且不会被替代,而字典中如果有重复的键,就会被新的键对应的值所取代

1 #dictionary = {键1:值1,键2:值2,键3:值3,.......}

2 m = {"a":1,"b":2,"c":3,"d":"nba"}3 m["x"] = 2019

4 m['y'] = 'abc'

5 print(m["x"])6 print(m["y"])7 m["a"] = 123

8 m["b"] = "HK666"

9 print(m)10 n = {"a":1,"b":2}11 y = {"c":3,"d":"nba"}12 n.update(y)13 print(n)14 z = {"a":1,"b":2}15 del(z["a"])16 print(z)17 x = {"a":1,"b":2}18 y = {"a":1,"b":2}19 x.update(y)20 print(x)21 #运行结果:

22 2019

23 abc24 {'a': 123, 'b': 'HK666', 'c': 3, 'd': 'nba', 'x': 2019, 'y': 'abc'}25 {'a': 1, 'b': 2, 'c': 3, 'd': 'nba'}26 {'b': 2}27 {'a': 1, 'b': 2}

字典常用的方法/函数

①取出所有的键dict.keys()

②取出所有的值dict.values()

③取出所有的键值对dict.items()

④清空字典dict.clear()

⑤删除:只能删除单个键值或者整个字典

删除单个键值 del dict['key1']

删除整个字典del dict

1 dict_aoe = {'key1':'value1','key2':'value2','key3':'value3','key4':'value4'}2 print(dict_aoe)3 print(dict_aoe.keys())4 print(dict_aoe.values())5 print(dict_aoe.clear())6 print(dict_aoe)7 dict1 = {'key1':'value1','key2':'value2','key3':'value3','key4':'value4'}8 del dict1['key1']9 print(dict1)10 deldict111 print(dict1)12 #运行结果

13 {'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}14 dict_keys(['key1', 'key2', 'key3', 'key4'])15 dict_values(['value1', 'value2', 'value3', 'value4'])16 None17 {}18 {'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}19 NameError: name 'dict1' is not defined

====================================================

注意:由于列表和字典的可变性,对其执行相关操作(增加,删除,修改))后,列表已经发生变化

====================================================

python包含多个元组的元组_Python数据结构(元组,列表,字典)相关推荐

  1. python高级数据筛选_python高级编程,列表字典集合相关的数据筛选

    每天坚持学习一点,进行数据复盘,学习就是不一样 python高级编程,列表字典集合相关的数据筛选 #先看看第一个列表筛选 2017 9 16 高效python编程的一个案例:from random i ...

  2. python数据结构的列表_Python数据结构之列表

    一,数据结构的概念 数据结构是通过某种方式组织在一起的数据集合,这些数据元素可以是数字或者字符,甚至可以是其他的数据结构. Python中最基本的数据结构是序列(sequence).序列中的每个元素被 ...

  3. python程序结构有哪几种_Python数据结构与算法(几种排序)小结

    Python数据结构与算法(几种排序) 数据结构与算法(Python) 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺 ...

  4. python删除链表满足pred的元素_python 数据结构一 之 线性表

    python数据结构教程第一课 从这里将会正式开始讲解python的一些实用的数据结构,原理加上实例源码. 一.简介 二.线性表的抽象数据类型 三.顺序表的实现 四.链接表的实现 1.单链表 2.带尾 ...

  5. [转载] python提取list中特定的元素_Python中list列表的基本操作

    参考链接: Python列表list remove() 你再主动一点点   我们就有故事了 列表的基本操作 与字符串一样,可以通过索引访问列表中的元素,同时列表也支持切片操作. list1 = [1, ...

  6. python编写代码运用递归画图形_python数据结构与算法 22 递归图形

    上节中我们已经知道有些问题,如果用递归解决变得非常容易.但是仍然很难在大脑里形成一种模型或可视化的方法,让我们直觉地明白函数递归过程到底发生了什么.这一节我们引入几个例子,用递归的方法画几个有趣的图形 ...

  7. python数据的存储结构是指_python数据结构

    一.算法入门 程序设计 = 数据结构 + 算法 算法时为了解决实际问题而设计的,数据结构是算法需要处理的问题载体 数据结构只是静态的描述呢数据元素之间的关系 高效的程序需要再数据结构的基础上设计和选择 ...

  8. python画老虎_Python数据结构:列表

    列表的基本函数 range(3) #小于3的整数:0,1,2 range(1,10) #大于等于1小于10的整数,即[1,10) range(1,10,2)#大于等于1小于10的整数,步长为2,即1, ...

  9. 每天一小时python官方文档学习(四)————数据结构之列表

    终于进入到第五章数据结构部分了,python中常用的容器有列表.元组.集合和字典,今天主要了解的是最为常用的列表. 5. 数据结构 5.1. 列表的更多特性 对于列表的操作有很多,具体操作看官方文档就 ...

最新文章

  1. 《linux c编程指南》学习手记5
  2. Python 学习日记 第四天
  3. ReactiveCocoa 更优雅的编程(信号探秘)
  4. oracle10g遇到ORA-16038日志无法归档问题
  5. python time\datatime\string直接转换
  6. Day19:继承实现的原理、子类中调用父类的方法、封装
  7. 第一次用AX2009正式版!
  8. 混亂的思維 ~ 很高興能邂逅到常年不見的竹子
  9. 2020美赛B题题目及解题思路
  10. Libxml2的简单介绍及应用
  11. 计算机创新课堂教案,1 1.1计算机概述1.2计算机系统课堂教学教案
  12. 前端实现下载文件-js实现a标签下载
  13. HP大中华区总裁孙振耀退休十五天后九大感言
  14. .NET平台机器学习资源汇总,有你想要的么?(转)
  15. win10计算机管理没有蓝牙,Win10蓝牙在哪里?Win10蓝牙设置关闭或开启方法图解
  16. Linux上重置MySQL密码 错误 ERROR 1045 (28000): Access denied for user ‘‘root‘‘@‘‘localhost‘‘ (using passw...
  17. 如何区分电脑上的硬件和软件?
  18. 微信小程序云开发获取用户openid
  19. matlab下的logistic回归分析
  20. 前端页面导入json格式数据

热门文章

  1. MFC制作员工信息管理系统
  2. Android高性能ORM数据库DBFlow入门
  3. 《Wireshark协议分析从入门到精通》
  4. oracle中 使用不了,Oracle 中不使用NOT IN 和 NOT EXISTS的另一种方法
  5. java发送邮件354_基于SMTP的JAVA邮件发送程序
  6. mysql 终端模拟_mysql客户端模拟脏读、幻读和可重复读
  7. c语言入门 在线,c语言入门课件1.docx
  8. php fastcgi exp,nginx +phpfastcgi 环境下 导出excel文件,超时,数据被截断问题,解决...
  9. php 不喜欢用对象,为什么PHP不在其默认库中使用对象?
  10. SSD之硬的不能再硬的硬核解析