python 数据类型_字典和集合

字典     一个key值 对应一个value值

定义

mydict1 = {'name':'a','age':21}
mydict2 = dict()

 

取值

>>> mydict1["name"]
'a'

 

>>> {"name":{"1":"aa","2":'bb'}}["name"]["1"]
'aa'

 

.get(key, 0)     取值

>>> mydict1.get("name")
'a'

 

赋值

>>> mydict2["ee"] = "aaa"

 

in 是否在里面

>>> "name" in mydict1
True

>>> "fname" in mydict1
False

 

.keys()            #返回字典键的列表

>>> mydict1.keys()
dict_keys(['name', 'age'])

 

.values()            #返回字典值的列表
>>> mydict1.values()
dict_values(['a', 21])

 

.items() 

>>> mydict1.items()
dict_items([('name', 'a'), ('age', 21)])

 

.update(dict2)     #增加合并字典

 

>>> mydict1.update({"sex":"nan"})
>>> mydict1
{'name': 'a', 'age': 21, 'sex': 'nan'}

 

 

.clear()           #清空字典,同del(dict)

 

.copy()            #拷贝字典

 

.cmp(dict1,dict2)  #比较字典,(优先级为元素个数、键大小、键值大小)
                    #第一个大返回1,小返回-1,一样返回0

 

dictionary的复制
dict1 = dict            #别名    浅拷贝   指针直接指向

 

>>> dict1 = mydict1
>>> id(dict1)
1751728577272
>>> id(mydict1)
1751728577272


dict2=dict.copy()   #克隆,即另一个拷贝。 新的字典内存空间

 

>>> dict2 = mydict1.copy()
>>> id(dict2)
1751728577344
>>> id(mydict1)
1751728577272

 但是字典内的元素地址还是一样的

>>> id(dict1["a"])
2564442425248
>>> id(dict2["a"])
2564442425248

 

使用deepcopy 元素以及变量都是新的地址

import copy

copy.deepcopy方法

 

set集合 每一项只能是唯一的

myset = set()

>>> type(myset)
<class 'tuple'>

>>> myset2 = {'a','b','c'}
>>> type(myset2)
<class 'set'>

 

add(),添加元素

>>> myset2.add("d")
>>> myset2
{'b', 'a', 'd', 'c'}

 

>>> myset2.remove("d")
>>> myset2
{'b', 'a', 'c'}

 

clear() 清空 

>>> myset.clear()
>>> myset
set()

 

pop() 弹出一个 随机的

>>> myset2.pop()
'b'
>>> myset2.pop()
'a'

>>> myset2
{'c'}

 

copy() 和字典一样

 

posted @ 2019-09-23 11:46  gidos  阅读(254)  评论(0编辑  收藏  举报