简述Python中常见的数据结构

Irene181 等级 1217 0 0

「数仓宝贝库」,带你学数据!

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

1

列表

(1)创建列表

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

In [1]: list1 = ['wellcom','to','the','sjwjyaisf1688']

In [2]: list1
Out[2]: ['wellcom', 'to', 'the', 'sjwjyaisf1688']

In [3]: list2 = ['wellcom','to','the','sjwjyaisf1688',6,6,6]

In [4]: list2
Out[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]: list2
Out[10]: ['a', 'b', 'c', 'd']

In [11]: list3 = ['e','f']

In [12]: list2+list3
Out[12]: ['a', 'b', 'c', 'd', 'e', 'f']

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

In [11]: list2 = [0,1,2]

In [12]: list2.extend([3,4,5])

In [13]: list2
Out[13]: [0, 1, 2, 3, 4, 5]

2

元组

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

(1)创建元组

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

In [14]: tuple1=1,2,3

In [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]: list2
Out[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]: drink
Out[25]: {'beer', 'lemonade', 'milk', 'sprite', 'water'}

In[26]:drink = set(['water','milk','lemonade','beer','sprite','milk'])

In [27]: drink
Out[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-B
Out[30]: {1, 2, 6}

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

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

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

In [32]: A & B
Out[32]: {3, 4, 5}

*4 *

字典

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

In[33]:dict1 = {'xiaoming':24,'xiaofang':28,'zhangsan':21,'wangwu':27}

In [34]: dict1
Out[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]: dict2
Out[39]: {'wangwu': 27, 'xiaofang': 28, 'xiaoming': 25, 'zhangsan': 21}

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

本文转自 https://mp.weixin.qq.com/s/EA-mkc5qpXZO31SjqUfa0Q,如有侵权,请联系删除。

收藏
评论区

相关推荐

Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。 安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
5 行 Python 代码调用电脑摄像头
**前提:** 确保 python 中安装了 opencv-python 模块。如果没有安装,可以参考:[https://pypi.org/project/opencv-python/](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fpypi.org%2Fproject%2Fopencv
20180607pip install xxx报错SyntaxError invalid syntax
用pip安装时都要在cmd命令行里启动的,而在python中无法运行。退出python运行环境就再执行pip可以了。而且最好用管理员身份运行cmdC:\WINDOWS\system32>cd D:\Python\APIC:\WINDOWS\system32>D:D:\Python\API>pip install wordcloud-1.4.1-cp3
20180607pip install xxx报错SyntaxError invalid syntax
用pip安装时都要在cmd命令行里启动的,而在python中无法运行。退出python运行环境就再执行pip可以了。而且最好用管理员身份运行cmdC:\WINDOWS\system32>cd D:\Python\APIC:\WINDOWS\system32>D:D:\Python\API>pip install wordcloud-1.4.1-cp3
Atom的python插件和常用插件
python: simplified-chinese-menu:中文汉化(英文差的) 代码高亮:Atom自带 自动补全:autocomplete-python 语法检查:linter-flake8 定义跳转:python-tools 代码运行:atom-runner (只能输出,不能输入),atom-python-run(Windows,可以输入
CentOS升级Python到2.7版本
查看python的版本 python -V Python 2.4.3 1.先安装GCC yum -y install gcc 2.下载Python-2.7.2 wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2 3.解压Python-2.7.2
FreeBSD python安装MySQL
fetch https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.4.zip unzip MySQL-python-1.2.4.zip cd MySQL-python-1.2.4 python setup.py install ln -s /usr/loca
Jenkins Python Plugin获取环境变量
Jenkins Python Plugin 官方wiki:[https://wiki.jenkins-ci.org/display/JENKINS/Python+Plugin](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwiki.jenkins-ci.org%2Fdisplay%2F
Linux下Python编程
linux下python编程可以使用sublime-text3来作为编辑器,很方便,而且linux默认就是有python2和python3环境安装的,我们只要安装sublime-text3即可进行python编程 sudo update-alternatives --install /usr/bin/python python /usr/bin/p
Python 3 教程
Python 3 教程 =========== ![python3](https://www.runoob.com/wp-content/uploads/2014/05/python3.png) Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,
Python List数据的遍历
方式一: <!-- lang: python --> app_list = [1234, 5677, 8899] <!-- lang: python --> for app_id in app_list: <!-- lang: python --> print app_id 输出: 123
Python中的参数传递与解析
Python传递命令行参数 ============= Python的命令行参数传递和C语言类似,都会把命令行参数保存到argv的变量中。对于python而言,argv是sys模块中定义的一个list。与C语言不同的是,python中并没有定义argc,要获得参数的个数,需要使用len(sys.argv) 当用户使用'python -c "command
Python升级Linux
CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级。 由于很多基本的命令、软件包都依赖旧版本,比如:yum。所以,在更新 python 时,建议不要删除旧版本(新旧版本可以共存)。 查看 Python 版本号 ============= 当 Linux 上安装 Python 后(默认安装)
Python源码在Win下和Linux下的编译,C++调用Python库绘制等高线
### 目录 前言 Python源码以及VS2017的准备 Python源码 VS2017 Windows下编译Python源码 编译命令 编译步骤 编译后的配置 添加注册表 Win10中编译Python源码小结 Windows中C++调用Python代码绘制等高线图 CMakeLists.txt文件如下: Python代码如下: CPP文件:
Python进阶丨如何创建你的第一个Python元类?
> **摘要:**通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。 Python元类设置类的行为和规则。元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一。通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。本文介绍以下概念: * * 什么是Python元类?