一、内容分类
二、set
1、集合
集合的元素可以是不可变对象:数字、字符串、元祖、frozenset。集合里的元素是不重复的。
空集合:
>>>dora = set()
>>>type(dora)
Python 2.x 里现实方式是set(列表)方式。
>>>doraset([])
Python 3.x 里,空的时候是set(),有元素跟字典差不多,但不是键:值方式。
>>>doraset()
>>>dora = {'Emon'}
>>>dora{'Emon'}
2、集合的方法
三、bytearray 类型
在Python2.x里默认字符串可以认为是在python3.x里的byte类型,在python3.x里默认类型是unicode。字符串类型是不可变的,但在python3.x里支持可变字符串:bytearray类型。
>>>a = bytearray('你好',encoding='utf-8')bytearray(b'\xe5\xbd\xa0\xe5\xa5\xbd')
>>>a[]
228
>>>a[]=229
>>>a.decode('utf-8')
'彠好'
>>>a.find('好'.encode('utf-8'))
3
四、对象灵活性
像列表,字典,元祖里的元素可以包涵任何对象,可以任意嵌套。列表和字典是任意变长的。
比如:一个列表如下:
>>>List1[{'dict': ['dict1','dict2']},'List2', (['list3-1','list3-2'],'list3-3'), ['list4']]
五、引用与复制
>>>a = [1,2,3]
>>>b = ['a',a,'b']
>>>b['a', [1,2,3],'b']
>>>a[] =4
>>>a[4,2,3]
>>>b['a', [4,2,3],'b']
这个时候发现,结果可能与想象的不一样。当我们需要的是复制a的值而不是引用:
>>>a = [1,2,3]
>>>b = ['a',a,'b']
>>>c=['a',a[:],'b']
>>>a[] =4
>>>a[4,2,3]
>>>b['a', [4,2,3],'b']
>>>c['a', [1,2,3],'b']
具体原理图如下:
六、比较 - 内容相等,对象相等
>>>a =1
>>>b =1
>>>a == b
True
>>>aisb
True
>>>a = [1,2,3]
>>>b = [1,2,3]
>>>a == b
True
>>>aisb
False
创建列表,字典,元组等有多个元素的对象的时候,不会在原有对象里查找想等的,而是新创建一个,字符串有点特殊。
七、Python中的真假
数字:非0为真,0为假
其它对象:非空为真,空为假
None 为假,关于None,在Python里是独立的对象类型,只有一个值。
bool类型:
>>>bool()
False
>>>bool(1)
True
>>>bool({})
False
八、无限循环
>>>a = {'d':''}#字典
>>>a['d'] = a
>>>a{'d': {...}}
>>>a['d']['d']['d']{'d': {...}}
>>>l = ['L']#列表
>>>l.append(l)
>>>l['L', [...]]
>>>l[1][1][1]['L', [...]]
领取专属 10元无门槛券
私享最新 技术干货