美文网首页
Python数据类型之dict-set

Python数据类型之dict-set

作者: 行走的浮游 | 来源:发表于2018-01-29 20:22 被阅读0次

1、dict字典数据类型

字典数据类型、map数据类型(映射类型)、容器数据类型,具有key-value键值对,key具有唯一性,不可改变

定义:demo_dict = {}   或  demo_dict = {"name": "tom", "age": 18}

a_dict = dict.formkeys([1,2,3], "hello")

取数据:

print(demo_dict["name"])     # 通过key取得value的值,如果获取一个不存在的key,会报错,KeyError

demo_dict["name"] = "joy"   #  如果key存在,则是修改key对应的value的值,如果不存在,则是向字典中添加新的数据项

字典的遍历:

遍历所有数据:

for item in demo_dict.items():

    print(item)

key关键字的遍历:

for key in demo_dict.keys():

    print(key)

value的遍历:

for value in demo_dict.values():

    print(value)

如何判断指定的key是否存在于字典中:

print("sex" in demo_dict)

print(demo_dict.__contains__("addr"))

版本区别:

py2:  demo_dict.has_key("name")

py3:  in关键字

其他操作:

删除数据项操作:

demo_dict.pop("name")   # 通过key来删除

demo_dict.popitem()   # 没有参数,随机删除一个数据项

清空字典:

demo_dict.clear()

复制(副本):

d_dict = demo_dict.copy()

修改字典:

demo_dict["name"] = "tom"  #  如果存在则为修改,不存在为添加

demo_dict.setdefault("name", "jim")  # 第一个参数为key,第二个参数为默认值(如果不存在)

更新:

a_dict = {"sex": "男", "addr": "北京"}

demo_dict.update(a_dict)

2、set集合数据类型

set集合数据类型和字典数据类型相比,set没有value值,set中的元素不能重复

定义:

a_set = set()

b_set = {1,2,3}

添加元素:

a_set.add(2)

a_set.update(b_set)

删除元素:

a_set.remove(2)

清空:

a_set.clear()

不可变集合:

num_set = frozenset([1,2,3,4])   #  不可变集合,不能添加,删除,清空元素,可以复制

集合间的运算:

print(2 in a_set)  # 判断某个元素是否存在  not in  不在

print(a_set != b_set)   # 不等于

print(a_set >= b_set)  # 

print(a_set & b_set)   # 求交集

print(a_set | b_set)   # 求并集

print(a_set - b_set)   # 求差集

print(a_set - b_set)   # 大数减小数

print(a_set ^ b_set)   # 异或运算

3、list/dict/set的区别

①、查找元素速度

list元素较多时,查找速度会随着元素的个数增多而减慢,而dict不会,所有顺序由关键字key来决定,查找速度接近一个恒定值

②、内存

list占用内存空间小,dict占用空间大

③、其他

list中的元素可以重复,dict里面的key是不能重复的,set元素不能重复,重复会发生覆盖

相关文章

网友评论

      本文标题:Python数据类型之dict-set

      本文链接:https://www.haomeiwen.com/subject/nigqaxtx.html