设为首页 收藏本站
查看: 909|回复: 0

[经验分享] Python-内置数据类型3

[复制链接]

尚未签到

发表于 2017-4-29 10:18:45 | 显示全部楼层 |阅读模式
元组
  元素 是不可变的列表。一旦创建之后,用任何方法都不可以修改元素

>>> my_tuple=('a','b','c','d',1,2,3,True)
>>> my_tuple
('a', 'b', 'c', 'd', 1, 2, 3, True)
>>> my_tuple[0]
'a'
>>> my_tuple[-2]
3
>>> my_tuple[1:3]
('b', 'c')
>>>

  元组和列表的主要区别是元组不能进行修改。
  元组没有像 append()、 extend()、 insert()、remove() 和 pop() 这样的方法。可以对元组进行切片操作(因为该方法创建一个新的元组),可以检查元组是否包含了特定的值(因为该操作不修改元组)。

同时赋多个值

>>> v=('a',2,True);
>>> (a,b,c)=v;
>>> a
'a'
>>> b
2
>>> c
True

集合
  集合set存储唯一且有序的对象。一个简单的集合可以包含任何数据类型的值。如果有两个集合,则可以执行像联合、交集以及集合求差等标准集合运算

创建集合

>>> my_set={1,2,3}
>>> type(my_set)
<class 'set'>
>>> my_set={};       #创建一个"集合"
>>> type(my_set);     
<class 'dict'>      #注意这里的类型是字典,空集合可以通过set()创建
>>> my_list=[1,2,3,4]
>>> my_set=set(my_list)  #列表转集合
>>> my_set
{1, 2, 3, 4}
>>> my_list=[1,2,'a','c',True,3]
>>> my_set=set(my_list);
>>> my_set
{3, 1, 2, 'a', 'c'}      #集合唯一且有序
>>> my_list
[1, 2, 'a', 'c', True, 3]
>>>


修改集合
  有两种方法可向现有集合中添加值: add() 方法和 update() 方法。

>>> my_set={1,2}
>>> my_set.add(3);  #add() 方法接受单个可以是任何数据类型的参数,并将该值添加到集合之中
>>> my_set
{1, 2, 3}
>>> len(my_set)
3
>>> my_set.update({3,4,5})  #update() 方法仅接受一个集合作为参数,并将其所有成员添加到初始列表中。其行为方式就像是对参数集合中的每个成员调用 add() 方法
>>> my_set
{1, 2, 3, 4, 5}
>>> my_set.update({5,6,7},{10,20});
>>> my_set
{1, 2, 3, 4, 5, 6, 7, 20, 10}
>>> my_set.update([1,100]);  #添加列表
>>> my_set
{1, 2, 3, 4, 5, 6, 7, 20, 10, 100}


从集合中删除元素
  有三种方法可以用来从集合中删除某个值。前两种,discard() 和 remove() 有细微的差异

>>> a_set = {1, 3, 6, 10, 15, 21, 28, 36, 45}
>>> a_set
{1, 3, 36, 6, 10, 45, 15, 21, 28}
>>> a_set.discard(10)      #接受一个单值作为参数,并从集合中删除该值,值不存在不产生错误
>>> a_set
{1, 3, 36, 6, 45, 15, 21, 28}
>>> a_set.remove(15)   #接受一个单值作为参数,也从集合中将其删除,值不存在将引发一个KeyError例外
>>> a_set
{1, 3, 36, 6, 45, 21, 28}
>>> a_set.pop();
1
>>> a_set
{3, 36, 6, 45, 21, 28}
>>> a_set.pop(3);
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: pop() takes no arguments (1 given)
>>> a_set.clear();
>>> a_set
set()
>>>


常见集合操作

>>> a_set = {2, 4, 5, 9, 12, 21, 30, 51, 76, 127, 195}
>>> 30 in a_set
True
>>> 33 in a_set
False
>>> b_set = {1, 2, 3, 5, 6, 8, 9, 12, 15, 17, 18, 21}
>>> a_set.union(b_set)           #在两个 集合中出现的元素
{1, 2, 195, 4, 5, 6, 8, 12, 76, 15, 17, 18, 3, 21, 30, 51, 9, 127}
>>> a_set.intersection(b_set)    #同时 在两个集合中出现的所有元素。
{9, 2, 12, 5, 21}
>>> a_set.difference(b_set)      #所有在 a_set 出现但未在 b_set 中的元素。
{195, 4, 76, 51, 30, 127}
>>> a_set.symmetric_difference(b_set)  #只在其中一个 集合中出现的元素。
{1, 3, 4, 6, 8, 76, 15, 17, 18, 195, 127, 30, 51}

字典
  字典 是键值对的无序集合。向字典添加一个键的同时,必须为该键增添一个值。(之后可随时修改该值。) Python 的字典为通过键获取值进行了优化,而不是反过来

创建字典

>>> my_dict={"server":"localhost","database":"oracle"}
>>> my_dict
{'database': 'oracle', 'server': 'localhost'}
>>> my_dict['server']
'localhost'
>>> my_dict['server']='127.0.0.1'
>>> my_dict
{'database': 'oracle', 'server': '127.0.0.1'}
>>> my_dict['username']='admin'
>>> my_dict
{'database': 'oracle', 'server': '127.0.0.1', 'username': 'admin'}
>>> len(my_dict)
3

None
  None 是 Python 的一个特殊常量。它是一个 空 值。None 与 False 不同。None 不是 0 。None 不是空字符串。将 None 与任何非 None 的东西进行比较将总是返回 False 。
  None 是唯一的空值。它有着自己的数据类型(NoneType)。可将 None 赋值给任何变量,但不能创建其它 NoneType 对象。所有值为 None 变量是相等的

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-370673-1-1.html 上篇帖子: python xapian存储结构 下篇帖子: Python解决codeforces ---- 5
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表