简述Python中常见的数据结构

数据分析学习社
数据分析学习社
数据分析学习社
325
文章
0
评论
2021-06-0310:11:10 评论 73 3530字
摘要

Python中常见的数据结构有列表(list)、元组(tuple)、集合(set)、字典(dict)等,这些数据结构表示了自身在Python中的存在形式,在Python中可以输入type(对象)查看数据类型

 

1
列表

 

 

(1)创建列表

 

列表是Python内置的一种数据类型,它是一种有序的数据集合,是用于存储一连串元素的容器。列表用[]来表示,列表中的每个元素可以相同也可以不相同。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
In [1]: list1 = ["wellcom","to","the","sjwjyaisf1688"]In [2]: list1Out[2]: ["wellcom""to""the""sjwjyaisf1688"]In [3]: list2 = ["wellcom","to","the","sjwjyaisf1688",6,6,6]In [4]: list2Out[4]: ["wellcom", "to", "the", "sjwjyaisf1688", 6, 6, 6]

 

除了可以使用"[]"创建列表外,还可以使用list()函数创建列表:

 

  •  
  •  
  •  
  •  
  •  
In [5]: list(["xiao","xiao","wa","jue","ji",666]Out[5]: ["xiao", "xiao", "wa", "jue", "ji", 666]In [6]: list("666")Out[6]: ["6", "6", "6"]

 

列表支持加法操作,即将两个或多个列表合并为一个列表,具体操作如下:

 

  •  
  •  
In [7]: ["wellcom","to","te"]+["xiao","xiao","ji","666"]Out[7]: ["wellcom", "to", "te", "xiao", "xiao", "ji", "666"]

 

(2)列表的方法

 

Python中的列表对象本身内置了一些方法,这里主要介绍常用的append方法和extend方法。

 

append方法表示在现有列表的最后添加一个元素,一般在Python的循环控制语句中使用较多,具体示例如下:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
In [8]: list2 = ["a","b","c"]In [9]: list2.append("d")In [10]: list2Out[10]: ["a""b""c""d"]In [11]: list3 = ["e","f"]In [12]: list2+list3Out[12]: ["a", "b", "c", "d", "e", "f"]

 

append方法每次只能在当前列表的最后添加一个元素,而extend方法可以同时在当前列表的最后添加多个元素,类似于列表的加法("+")操作,表示将两个列表合并为一个列表。

 

  •  
  •  
  •  
  •  
  •  
  •  
In [11]: list2 = [0,1,2]In [12]: list2.extend([3,4,5])In [13]: list2Out[13]: [0, 1, 2, 3, 4, 5]

 

 

2
元组

 

 

元组与列表类似,区别在于列表中的元素可以修改,而元组中的元素只能读取,不可更改。

 

(1)创建元组

 

创建元组的代码示例如下:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
In [14]: tuple1=1,2,3In [15]: tuple2="sjwjyaisf1688","xiaoxiaowajueji666"In [16]: tuple3=(1,2,3,4)In [17]: tuple4=()In [18]: tuple5=(1,)In [19]: print(tuple1,tuple2,tuple3,tuple4,tuple5)(1, 2, 3) ("sjwjyaisf1688", "xiaoxiaowajueji666") (1, 2, 3, 4) () (1,)

 

从上面的结果我们可以简单地总结出创建元组的几个要点:

  • 逗号分隔元组中的值,元组自动创建完成;

  • 元组大多数时候是被括号包围起来的;

  • 可以创建一个空元组,空元组外层只有一对括号;

  • 只含一个值的元组,必须在元组中加个逗号(,)。

     

与列表类似,元组也支持加法操作,即将两个或多个元组合并为一个元组。

 

  •  
  •  
In [20]: (1,2,3)+(4,5,6)Out[20]: (1, 2, 3, 4, 5, 6)

 

(2)元组赋值

 

需要注意的是,列表可以进行赋值操作,而元组则不可进行赋值操作。具体示例如下:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
In [21]: list2[1]="a"In [22]: list2Out[22]: [0, "a", 2, 3, 4, 5]In [23]: tuple1[1] = "a"---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-23-8b1c599ad6fe> in <module>()----> 1 tuple1[1] = "a"TypeError: "tuple" object does not support item assignment

 

可以看到,对列表进行赋值操作可以顺利完成,但试图对元组进行赋值操作则会报错,这也体现了元组中的元素不可更改的特点。

 

 

3
集合

 

 

在Python中,集合是一种特殊的数据结构,集合中的元素不能重复。可以通过列表、字典或字符串等数据结构来创建集合,也可以通过"{}"符号进行创建。在实际应用中,集合主要有两个功能,一是进行集合操作,二是消除重复元素。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
In [24]: drink = {"water","milk","lemonade","beer","sprite"}In [25]: drinkOut[25]: {"beer", "lemonade", "milk", "sprite", "water"}In[26]:drink = set(["water","milk","lemonade","beer","sprite","milk"])In [27]: drinkOut[27]: {"beer", "lemonade", "milk", "sprite", "water"}另外,Python支持数学上的集合运算,包括差集、交集、并集等,假设有两个集合A、B:In [28]: A = {1,2,3,4,5,6}In [29]: B = {3,4,5}

 

下面分别举例说明。

 

1)求集合A与集合B的差集,即集合A的元素去除集合A、B共有部分的元素:

 

  •  
  •  
In [30]: A-BOut[30]: {1, 2, 6}

 

2)求集合A与集合B的并集,即集合A与集合B的全部唯一元素(这里其实就是集合A中的所有元素):

 

  •  
  •  
In [31]: A | BOut[31]: {1, 2, 3, 4, 5, 6}

 

3)求集合A与集合B的交集,即集合A与集合B的共有元素:

 

  •  
  •  
In [32]: A & BOut[32]: {3, 4, 5}

 

4
字典

 

字典与前面介绍的几种数据结构都不太相同,它是使用键–值(key-value)对的方式来进行存储的,具有方便快速查找的优点。与集合类似,字典也是使用符号"{}"括起来的,但其中的每个键–值对之间用冒号":"进行对应。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
In[33]:dict1 = {"xiaoming":24,"xiaofang":28,"zhangsan":21,"wangwu":27}In [34]: dict1Out[34]: {"wangwu": 27, "xiaofang": 28, "xiaoming": 24, "zhangsan": 21}字典本身是无序的,但可以分别通过keys和values方法获取字典中的键和值。In [35]: dict1.keys()Out[35]: dict_keys(["xiaoming", "xiaofang", "zhangsan", "wangwu"])In [36]: dict1.values()Out[36]: dict_values([24, 28, 21, 27])

 

另外,字典还支持通过键来访问其对应的值:

 

  •  
  •  
In [37]: dict1["xiaoming"]Out[37]: 24

 

需要注意的是,在定义字典时,键不能重复,否则重复的键值会默认替换原来的键值。

 

  •  
  •  
  •  
  •  
In[38]:dict2={"xiaoming":24,"xiaofang":28,"zhangsan":21,"wangwu":27,"xiaoming":25}In [39]: dict2Out[39]: {"wangwu": 27, "xiaofang": 28, "xiaoming": 25, "zhangsan": 21}

 

本文摘编于《Python广告数据挖掘与分析实战》。

 

 

End.

作者:杨游云

转载如果涉及作品、版权其他问题请联系我们第一时间删除微信号:lovedata0520)

更多文章前往首页浏览http://www.itongji.cn/

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: