06_Python的数据类型3元组,集合和字典_Python编程之路

上一节跟大家讲了Python的列表,当然不是完整的讲完,后续我们还会提到,这一节我们还是来讲Python的数据类型
首先要讲到的就是元组
元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面元组又比不上列表
定义一个元组,你可以不用加‘ [ ] ’,你只需用逗号隔开即可
例如
In [1]: my_tuple = "susmote", 28, 123456789 In [2]: my_tuple[0]
Out[2]: 'susmote' In [3]: my_tuple[1]
Out[3]: 28 In [4]: my_tuple
Out[4]: ('susmote', 28, 123456789)
元组也能被嵌套
In [5]: nested_t = my_tuple, (4, 3, 2, 1) In [6]: nested_t
Out[6]: (('susmote', 28, 123456789), (4, 3, 2, 1)) In [7]: nested_t[0][0]
Out[7]: 'susmote'
在这里,元组和列表最大的不同就是元组是不可变的,不能通过直接赋值改变元组中的值
In [8]: my_tuple = "susmote", 28, 123456789 In [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
下面报了一个类型错误
但是,在元组里面可以包含列表,而列表有是可变的,所以说元组是包含可变对象
In [11]: my_tuple = ([1, 2, 3],[4, 5, 6]) In [12]: my_tuple[0][0] = 7 In [13]: my_tuple
Out[13]: ([7, 2, 3], [4, 5, 6])
在这里,要注意,括号是可以不用加上的,但为什么规范起见,还是尽量要把括号加上
元组是可以为空的,你只需要在赋值的时候加一个括号即可
In [16]: my_tuple = () In [17]: len(my_tuple)
Out[17]: 0
如果你想创建一个只有一个元素的元组,那么你只需要在最后加上一个逗号就可以了
In [18]: my_tuple = "susmote", In [19]: my_tuple
Out[19]: ('susmote',) In [20]: len(my_tuple)
Out[20]: 1
元组是一个包含多个值的列表集合,所以我们可以直接获取其中的值,并赋给一个变量
In [27]: my_tuple = "susmote",123456, 18 In [28]: my_tuple = "susmote", 18, 13488888888 In [29]: name, age, phone = my_tuple In [30]: name
Out[30]: 'susmote' In [31]: phone
Out[31]: 13488888888
接下来我们讲一下集合
集合相信大家应该不陌生,初中的时候应该是学过的,当然你如果说你没上个初中,那就另当别论了
由一个或多个确定的元素所构成的整体叫做集合。这是数学中的概念,在python中也可以这样简单的认为
声明一个要用到花括号" { } ",你要把值全部加到括号里面
首先集合的一个重要概念就是无序
例如,我们声明一个集合
In [32]: my_set = {'a', 'b', 'c', 'd'}
In [33]: print(my_set)
{'b', 'd', 'c', 'a'}
很清晰的看出他是无序的
同时你也可以通过判断语句" in "来获取某个元素是否存在与集合中,他返回一个布尔类型
In [36]: my_set = {'a', 'b', 'c', 'd'}
In [37]: 'a' in my_set
Out[37]: True
In [38]: 'e' in my_set
Out[38]: False
tips:Ture代表真,false代表假(相信大家都知道)
然后集合还有一个概念就是里面的元素只能是唯一的,如果有重复的,会自动移除
In [1]: my_set = {'a', 'b', 'b', 'c', 'c', 'd'}
In [2]: my_set
Out[2]: {'a', 'b', 'c', 'd'}
除了通过花括号赋值,我们还可以直接调用 set() 方法,生成一个集合
In [3]: my_set = set('abcdefgabcdefg')
In [4]: my_set
Out[4]: {'a', 'b', 'c', 'd', 'e', 'f', 'g'}
下面我们要讲到集合的一个重要的概念
集合的运算
“ - ” 差运算
In [5]: a = set('abcde')
In [6]: b = set('bdfgh')
In [7]: a - b
Out[7]: {'a', 'c', 'e'}
只保留a独有的元素,其他的如有与b相同的则移除
“ | ” 并运算
In [8]: a = set('abcde')
In [9]: b = set('bdfgh')
In [10]: a | b
Out[10]: {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}
包含a和b所有的元素,如果有重复的则只留一个
“ & ” 交运算,求交集
In [11]: a = set('abcde')
In [12]: b = set('bdfgh')
In [13]: a & b
Out[13]: {'b', 'd'}
只保留a集合和b集合中相同的元素
“ ^ ” 求交集的补集
In [16]: a = set('abcde')
In [17]: b = set('bdfgh')
In [18]: a ^ b
Out[18]: {'a', 'c', 'e', 'f', 'g', 'h'}
保留a和b都单独存在的元素,去除a与b相同的元素
关于集合我们主要需要了解的只有这些,至于运用,后续讲
在这我们再讲最后一种数据类型
字典( Dictionaries)
在python中,字典是一个很常用的数据类型。在其他语言中,也有叫做关联数组的
字典不像列表,元组,存在自动有顺序的索引(index)
字典中的索引也就是必须手动建立的Key(键),每个键对应一个value(值)
而且键除了普通的数值类型之外,还可以用“String”类型
定义一个字典要用到“ { } ”,每个key后面加“ : ”(冒号)接value(值),再加一个值的话,用逗号隔开
例如,我们下面定义一个字典
In [23]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}
In [24]: my_dict
Out[24]: {'age': 18, 'name': 'susmote', 'tel': 1348888888}
下面我们通过key来获取值
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()”方法来删除
In [23]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}
In [24]: my_dict
Out[24]: {'age': 18, 'name': 'susmote', 'tel': 1348888888}
In [25]: del my_dict["tel"]
In [26]: my_dict
Out[26]: {'age': 18, 'name': 'susmote'}
你可以通过list()方法列出字典里所有的key,或者是所有的value
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的首字母顺序进行排序
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是否存在与集合中,当然字典也是可以的,同样也是返回一个布尔类型
In [41]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}
In [42]: 'name' in my_dict
Out[42]: True
In [43]: 'name'not in my_dict
Out[43]: False
使用dict() 生成字典
In [44]: dict([('name', 'susmote'), ('age', 18), ('Tel', 13488888888)])
Out[44]: {'Tel': 13488888888, 'age': 18, 'name': 'susmote'}
也可以直接这样(字符串类型简单的时候)
In [45]: dict(name = "susmote", age = 18, tel = 13488888888)
Out[45]: {'age': 18, 'name': 'susmote', 'tel': 13488888888}
python的数据类型大概就是这些,有一些知识点,我会在后面学了控制循环语句之后在讲
我的博客网站 www.susmote.com
06_Python的数据类型3元组,集合和字典_Python编程之路的更多相关文章
- 04_Python的数据类型1数值和字符串_Python编程之路
上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出 这节我们来讲Python的数据类型与变量的操作 Python的交互器 在讲这个之前,我要先讲一下python的 ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- 5. Python数据类型之元组、集合、字典
元组(tuple) 元组创建很简单,只需要在小括号中添加元素,并使用逗号隔开即可.与列表不同的是,元组的元素不能修改.如下代码所示: tup1 = () tup2 = (1) tup3 = (1,) ...
- python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary
#python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...
- Python3基础数据类型(数字、字符串、元组、列表、集合、字典)
笔记参考了菜鸟教程 Python 中的变量不需要声明,赋值才创建.赋值给变量的是什么类型变量就是什么类型 多个变量赋值 1 a, b, c = 1, 2, "runoob" 标准数 ...
- python数据类型详解及列表字典集合推导式详解
一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...
- python中的数据类型之元组和字典
一.元组:俗称不可变的列表,又被称为只读列表.元组用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以,但就是不能修改. 注意:如果元组中只有一个元素,一定要加一个逗号,否则 ...
- 002-Python3-基础语法-赋值、显示类型、数据类型[数值、字符串、列表、元祖、集合、字典]
一.基础语法 参看地址:https://www.runoob.com/python3/python3-tutorial.html 基础数据类型 Python 中的变量不需要声明.每个变量在使用前都必须 ...
- python之字符串,列表,字典,元组,集合内置方法总结
目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...
随机推荐
- [JSOI2004]平衡点
题面在这里 题意 ...见链接吧 sol 在此发一篇模拟退火的题解 不得不说luogu的数据真是太良心啦 一句话解释模拟退火:在一个慢慢缩小的范围内随机状态寻找最优解,当转移状态更优时直接接受,当当前 ...
- linux开机启动流程及需要开机启动服务讲解和修改及防火墙
linux系统从开机到登陆的启动流程. 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit ...
- 【BZOJ2693】jzptab
Time Limit: 5000 ms Memory Limit: 512 MB description 给你\(n, m\),求\(\sum\limits_{i=1}^{n}\sum\limits_ ...
- 谷歌chrome 插件(扩展)开发——进阶篇(c#本地程序和插件交互)下
在上一篇中,我提出了总任务.接下来去实现. 获取网页内容等其它信息,这是content.js 擅长做的事情: chrome.extension.onMessage.addListener( funct ...
- table_rows查询优化
日常应用运维工作中,Dev或者db本身都需要统计表的行数,以此作为应用或者维护的一个信息参考.也许很多人会忽略select count(*) from table_name类似的sql对数据库性能的影 ...
- 剑指Offer-数组中重复的数字
package Array; /** * 数组中重复的数字 *在一个长度为n的数组里的所有数字都在0到n-1的范围内. * 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次 ...
- analyzing problems
If you talking to a friend or talking to a family member ,you can say:what's the metter or What's go ...
- 记录Window系统下myeclipes连接linux下mysql所出现的一个bug
记录myeclipes远程连接mysql所出现的一个bug 今天在玩框架hibernate时,出现一个非常费解的bug,话不多说,先看bug Access denied for user 'root' ...
- mysql数据库索引优化与实践(一)
前言 mysql数据库是现在应用最广泛的数据库系统.与数据库打交道是每个Java程序员日常工作之一,索引优化是必备的技能之一. 为什么要了解索引 真实案例 案例一:大学有段时间学习爬虫,爬取了知乎30 ...
- c++ --> #define中的三个特殊符号:#,##,#@
#define中的三个特殊符号:#,##,#@ 看下面三个define宏定义: #define Conn(x,y) x##y #define ToChar(x) #@x #define ToStrin ...