Python的数据类型3元组,集合和字典
首先要讲到的就是元组
元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面元组又比不上列表
定义一个元组,你可以不用加‘ [ ] ’,你只需用逗号隔开即可
例如
|
1
2
3
4
5
6
7
8
9
10
|
In [1]: my_tuple = "susmote", 28, 123456789In [2]: my_tuple[0]Out[2]: 'susmote'In [3]: my_tuple[1]Out[3]: 28In [4]: my_tupleOut[4]: ('susmote', 28, 123456789) |
元组也能被嵌套
|
1
2
3
4
5
6
7
|
In [5]: nested_t = my_tuple, (4, 3, 2, 1)In [6]: nested_tOut[6]: (('susmote', 28, 123456789), (4, 3, 2, 1))In [7]: nested_t[0][0]Out[7]: 'susmote' |
在这里,元组和列表最大的不同就是元组是不可变的,不能通过直接赋值改变元组中的值
|
1
2
3
4
5
6
7
8
9
|
In [8]: my_tuple = "susmote", 28, 123456789In [9]: my_tuple[0] = "ayesup"---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-9-d99875c0ce61> in <module>()----> 1 my_tuple[0] = "ayesup"TypeError: 'tuple' object does not support item assignment |
下面报了一个类型错误
但是,在元组里面可以包含列表,而列表有是可变的,所以说元组是包含可变对象
|
1
2
3
4
5
6
|
In [11]: my_tuple = ([1, 2, 3],[4, 5, 6])In [12]: my_tuple[0][0] = 7In [13]: my_tupleOut[13]: ([7, 2, 3], [4, 5, 6]) |
在这里,要注意,括号是可以不用加上的,但为什么规范起见,还是尽量要把括号加上
元组是可以为空的,你只需要在赋值的时候加一个括号即可
|
1
2
3
4
|
In [16]: my_tuple = ()In [17]: len(my_tuple)Out[17]: 0 |
如果你想创建一个只有一个元素的元组,那么你只需要在最后加上一个逗号就可以了
|
1
2
3
4
5
6
7
|
In [18]: my_tuple = "susmote",In [19]: my_tupleOut[19]: ('susmote',)In [20]: len(my_tuple)Out[20]: 1 |
元组是一个包含多个值的列表集合,所以我们可以直接获取其中的值,并赋给一个变量
|
1
2
3
4
5
6
7
8
9
10
11
|
In [27]: my_tuple = "susmote",123456, 18In [28]: my_tuple = "susmote", 18, 13488888888In [29]: name, age, phone = my_tupleIn [30]: nameOut[30]: 'susmote'In [31]: phoneOut[31]: 13488888888 |
接下来我们讲一下集合
集合相信大家应该不陌生,初中的时候应该是学过的,当然你如果说你没上个初中,那就另当别论了
由一个或多个确定的元素所构成的整体叫做集合。这是数学中的概念,在python中也可以这样简单的认为
声明一个要用到花括号" { } ",你要把值全部加到括号里面
首先集合的一个重要概念就是无序
例如,我们声明一个集合
|
1
2
3
4
|
In [32]: my_set = {'a', 'b', 'c', 'd'}In [33]: print(my_set){'b', 'd', 'c', 'a'} |
很清晰的看出他是无序的
同时你也可以通过判断语句" in "来获取某个元素是否存在与集合中,他返回一个布尔类型
|
1
2
3
4
5
6
7
|
In [36]: my_set = {'a', 'b', 'c', 'd'}In [37]: 'a' in my_setOut[37]: TrueIn [38]: 'e' in my_setOut[38]: False |
tips:Ture代表真,false代表假(相信大家都知道)
然后集合还有一个概念就是里面的元素只能是唯一的,如果有重复的,会自动移除
|
1
2
3
4
|
In [1]: my_set = {'a', 'b', 'b', 'c', 'c', 'd'}In [2]: my_setOut[2]: {'a', 'b', 'c', 'd'} |
除了通过花括号赋值,我们还可以直接调用 set() 方法,生成一个集合
|
1
2
3
4
|
In [3]: my_set = set('abcdefgabcdefg')In [4]: my_setOut[4]: {'a', 'b', 'c', 'd', 'e', 'f', 'g'} |
下面我们要讲到集合的一个重要的概念
集合的运算
“ - ” 差运算
|
1
2
3
4
5
6
|
In [5]: a = set('abcde')In [6]: b = set('bdfgh')In [7]: a - bOut[7]: {'a', 'c', 'e'} |
只保留a独有的元素,其他的如有与b相同的则移除
“ | ” 并运算
|
1
2
3
4
5
6
|
In [8]: a = set('abcde')In [9]: b = set('bdfgh')In [10]: a | bOut[10]: {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'} |
包含a和b所有的元素,如果有重复的则只留一个
“ & ” 交运算,求交集
|
1
2
3
4
5
6
|
In [11]: a = set('abcde')In [12]: b = set('bdfgh')In [13]: a & bOut[13]: {'b', 'd'} |
只保留a集合和b集合中相同的元素
“ ^ ” 求交集的补集
|
1
2
3
4
5
6
|
In [16]: a = set('abcde')In [17]: b = set('bdfgh')In [18]: a ^ bOut[18]: {'a', 'c', 'e', 'f', 'g', 'h'} |
保留a和b都单独存在的元素,去除a与b相同的元素
关于集合我们主要需要了解的只有这些,至于运用,后续讲
在这我们再讲最后一种数据类型
字典( Dictionaries)
在python中,字典是一个很常用的数据类型。在其他语言中,也有叫做关联数组的
字典不像列表,元组,存在自动有顺序的索引(index)
字典中的索引也就是必须手动建立的Key(键),每个键对应一个value(值)
而且键除了普通的数值类型之外,还可以用“String”类型
定义一个字典要用到“ { } ”,每个key后面加“ : ”(冒号)接value(值),再加一个值的话,用逗号隔开
例如,我们下面定义一个字典
|
1
2
3
4
|
In [23]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}In [24]: my_dictOut[24]: {'age': 18, 'name': 'susmote', 'tel': 1348888888} |
下面我们通过key来获取值
|
1
2
3
4
5
6
7
|
In [20]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}In [21]: my_dict["name"]Out[21]: 'susmote'In [22]: my_dict["tel"]Out[22]: 1348888888 |
如果你觉得里面有个元素没用了,你可以通过 “del()”方法来删除
|
1
2
3
4
5
6
7
8
9
|
In [23]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}In [24]: my_dictOut[24]: {'age': 18, 'name': 'susmote', 'tel': 1348888888}In [25]: del my_dict["tel"]In [26]: my_dictOut[26]: {'age': 18, 'name': 'susmote'} |
你可以通过list()方法列出字典里所有的key,或者是所有的value
|
1
2
3
4
5
6
7
|
In [32]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}In [33]: list(my_dict.keys())Out[33]: ['name', 'age', 'tel']In [34]: list(my_dict.values())Out[34]: ['susmote', 18, 1348888888] |
排序,通过sorted()方法按照key的首字母顺序进行排序
|
1
2
3
4
|
In [5]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}In [6]: sorted(my_dict.keys())Out[6]: ['age', 'name', 'tel'] |
前面讲到集合可以通过 “in” "not in"判断一个keys是否存在与集合中,当然字典也是可以的,同样也是返回一个布尔类型
|
1
2
3
4
5
6
7
|
In [41]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}In [42]: 'name' in my_dictOut[42]: TrueIn [43]: 'name'not in my_dictOut[43]: False |
使用dict() 生成字典
|
1
2
|
In [44]: dict([('name', 'susmote'), ('age', 18), ('Tel', 13488888888)])Out[44]: {'Tel': 13488888888, 'age': 18, 'name': 'susmote'} |
也可以直接这样(字符串类型简单的时候)
|
1
2
|
In [45]: dict(name = "susmote", age = 18, tel = 13488888888)Out[45]: {'age': 18, 'name': 'susmote', 'tel': 13488888888} |
python的数据类型大概就是这些,有一些知识点,我会在后面学了控制循环语句之后在讲
Python的数据类型3元组,集合和字典的更多相关文章
- python之数据类型补充、集合、深浅copy
一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址 ...
- Python - 基础数据类型 tuple 元组
元组简单介绍 元组是一个和列表和相似的数据类型,也是一个有序序列 两者拥有着基本相同的特性,但是也有很多不同的地方 声明元组 var = (1, 2, 3) var = ("1", ...
- python自学笔记(四)python基本数据类型之元组、集合、字典
一.元组tuple 特性 1.有序集合 2.通过偏移来取数据 3.不可变对象,不能在原地修改内存,没有排序.修改等操作 元组不可变的好处:保证数据的安全,比如我们传给一个不熟悉的方法,确保不会改变我们 ...
- 【python基础】之元组 集合 字典
元组 元组:元组和列表类似.但是元组中的元素是固定的(不能给一个元组添加,删除和替换元素以及重新排序) 1.创建元组 t1 = () #创建一个空元组 t2 = (1, 2, 3) t3 = tupl ...
- python基础(五)列表,元组,集合
列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- Python基本数据类型--列表、元组、字典、集合
一.Python基本数据类型--列表(List) 1.定义:[ ]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素. 2.列表的创建: # 方式一 list1 = ['name','ag ...
- python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary
#python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...
- python初识数据类型(字典、集合、元组、布尔)与运算符
目录 python数据类型(dict.tuple.set.bool) 字典 集合 元组 布尔值 用户交互与输出 获取用户输入 输出信息 格式化输出 基本运算符 算术运算符 比较运算符 逻辑运算符 赋值 ...
随机推荐
- 04: Dom
目录: 参考W3school 1.1 获取标签:直接选择器和间接选择器 1.2 操作标签 1.3 DOM其他操作 1.4 DOM绑定事件的三种方法 1.5 DOM可以绑定的事件 1.1 获取标签:直接 ...
- 在Visual C#中使用XML指南之读取XML
网站:http://www.yesky.com/155/1915155all.shtml#p1915155
- 25个c#知识点
网站地址:http://m.3y.uu456.com/mbp_56hl91r1rx5uqa87qrzo_1.html
- ubuntu启动google_chrome报错:FATAL:nss_util.cc(632)] NSS_VersionCheck("3.26") failed. NSS >= 3.26 is required. Please upgrade to the latest NSS
一.背景: jello@jello:~$ lsb_release -aNo LSB modules are available.Distributor ID: Ubuntu KylinDescr ...
- ubuntu16.04下无线网卡无法正常连网
背景:无线网卡初次连接可以正常上网,但是用了一会儿就会出现无法上网的情况 版本: Ubuntu 16.04 一.分析: 1.使用ifconfig命令发现不会显示无线网卡,说明无线网卡被关闭,笔者输出的 ...
- P2709 小B的询问
题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重 ...
- C++中find()函数和rfind()函数的用法
本文转载自http://blog.csdn.net/youxin2012/article/details/9162415 string中 find()的应用 (rfind() 类似,只是从反向查找) ...
- 【分词器及自定义】Elasticsearch中文分词器及自定义分词器
中文分词器 在lunix下执行下列命令,可以看到本来应该按照中文”北京大学”来查询结果es将其分拆为”北”,”京”,”大”,”学”四个汉字,这显然不符合我的预期.这是因为Es默认的是英文分词器我需要为 ...
- mysql中时间计算函数SQL DATE_SUB()用法
本文为博主原创,未经允许不得转载: 在写sql的时候,经常要在sql中传值时间,对时间进行计算并过滤.之前都是将时间在后台计算好,直接传值给sql, 今天发现,有一个更方便的sql函数,可以简化很多代 ...
- Ubuntu Eclipse ns3编译中 遇到的OSError 系列问题
问题1:Permission denied 解决方法:修改文件权限,利用 chmod 命令 修改在 /home/wasdns/workspace/MyNS3_Mac/ns-3.25 (eclipse工 ...