Python数据类型之dict-set

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元素不能重复,重复会发生覆盖

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Python的hello-world: print ("Hello, Python!")、 完了 摇就完事儿...
    LunarShade阅读 1,604评论 0 0
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,979评论 0 3
  • 1. 注解的定义 注解是元数据,是修饰数据的数据,在Java中使用注解来修饰类、方法或者属性,然后使用注解处理器来...
    风起天蓝阅读 169评论 0 1
  • 芳草萋萋 绿水萦绕 老黄牛身边陪着牛犊 蓝的只有几片云点缀的天空 背后坝上流过青苔的溪水 鸟儿婉转地叽叽喳喳 似乎...
    叫我梅芳就好阅读 267评论 0 5
  • 首先,计算机会加载 BLOS。这是计算机上最接近硬件的软件。所做的工作是"Power on Self Test"(...
    苏近之2017阅读 154评论 0 0