前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3学习笔记 | 十、Python的类型与运算-其他

Python3学习笔记 | 十、Python的类型与运算-其他

作者头像
TeamsSix
发布2019-09-24 17:06:26
4050
发布2019-09-24 17:06:26
举报
文章被收录于专栏:TeamsSix的网络空间安全专栏

一、内容分类

二、set

1、集合

集合的元素可以是不可变对象:数字、字符串、元祖、frozenset。集合里的元素是不重复的。

空集合:

代码语言:javascript
复制
>>> dora = set()
>>> type(dora)
<class 'set'>

Python 2.x 里现实方式是set(列表)方式。

代码语言:javascript
复制
>>> dora
set([])

Python 3.x 里,空的时候是set(),有元素跟字典差不多,但不是键:值方式。

代码语言:javascript
复制
>>> dora
set()
>>> dora = {'Emon'}
>>> dora
{'Emon'}

2、集合的方法

三、bytearray 类型

在Python2.x里默认字符串可以认为是在python3.x里的byte类型,在python3.x里默认类型是unicode。字符串类型是不可变的,但在python3.x里支持可变字符串:bytearray类型。

代码语言:javascript
复制
>>> a = bytearray('你好',encoding='utf-8')
bytearray(b'\xe5\xbd\xa0\xe5\xa5\xbd')
>>> a[0]
228
>>> a[0]=229
>>> a.decode('utf-8')
'彠好'
>>> a.find('好'.encode('utf-8'))
3

四、对象灵活性

像列表,字典,元祖里的元素可以包涵任何对象,可以任意嵌套。列表和字典是任意变长的。 比如:一个列表如下:

代码语言:javascript
复制
>>> List1
[{'dict': ['dict1', 'dict2']}, 'List2', (['list3-1', 'list3-2'], 'list3-3'), ['list4']]

五、引用与复制

代码语言:javascript
复制
>>> a = [1,2,3]
>>> b = ['a',a,'b']
>>> b
['a', [1, 2, 3], 'b']
>>> a[0] = 4
>>> a
[4, 2, 3]
>>> b
['a', [4, 2, 3], 'b']

这个时候发现,结果可能与想象的不一样。当我们需要的是复制a的值而不是引用:

代码语言:javascript
复制
>>> a = [1,2,3]
>>> b = ['a',a,'b']
>>> c=['a',a[:],'b']
>>> a[0] = 4
>>> a
[4, 2, 3]
>>> b
['a', [4, 2, 3], 'b']
>>> c
['a', [1, 2, 3], 'b']

具体原理图如下:

六、比较 - 内容相等,对象相等

代码语言:javascript
复制
>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> a == b
True
>>> a is b
False

创建列表,字典,元组等有多个元素的对象的时候,不会在原有对象里查找想等的,而是新创建一个,字符串有点特殊。

七、Python中的真假

数字:非0为真,0为假

其它对象:非空为真,空为假

None 为假,关于None,在Python里是独立的对象类型,只有一个值。

bool类型:

代码语言:javascript
复制
>>> bool()
False
>>> bool(1)
True
>>> bool({})
False

八、无限循环

代码语言:javascript
复制
>>> a = {'d':''}  #字典
>>> a['d'] = a
>>> a
{'d': {...}}
>>> a['d']['d']['d']
{'d': {...}}

>>> l = ['L']  #列表
>>> l.append(l)
>>> l
['L', [...]]
>>> l[1][1][1]
['L', [...]]

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、内容分类
  • 二、set
  • 1、集合
  • 2、集合的方法
  • 三、bytearray 类型
  • 四、对象灵活性
  • 五、引用与复制
  • 六、比较 - 内容相等,对象相等
  • 七、Python中的真假
  • 八、无限循环
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档