
正文
day16 python-04 字典
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Python之路,Day3 = Python基础4
# is 比较id # == 比较数值 # type(1) is type(2) 比较两个变量的类型是否相同
a = 1
b = 1
c = ''
print(type(a), type(b), type(a) is type(b)) # <class 'int'> <class 'int'> True
print(type(a), type(c), type(a) is type(c)) # <class 'int'> <class 'str'> False # 字典:
# 赋值方式
# dict(x=1,y=2,z=3)
# dict([('x',1), ('y',2), ('z',3)]) d1 = {'x':1, 'y':2, 'z': 3}
d2 = dict(x=1,y=2,z=3)
d3 = dict([('x',1), ('y',2), ('z',3)])
print(d1) # {'y': 2, 'x': 1, 'z': 3}
print(d2) # {'y': 2, 'x': 1, 'z': 3}
print(d3) # {'y': 2, 'x': 1, 'z': 3} # {}.fromkeys(['name', 'age'],None) None的位置,视为一个整体,分别给每一个
d4 = {}.fromkeys(['name', 'age','sex'],None) # {'age': None, 'sex': None, 'name': None}
print(d4) # d.clear() :清空字典中的元素
d1.clear()
print(d1) # {} # d.get() :找元素,找不到返回None,可以d.get('y','找不到。。。')
print(d2.get('x')) #
print(d2.get('a')) # None # d.items()
print(d2.items()) # dict_items([('x', 1), ('z', 3), ('y', 2)]) >>>可迭代 # d.keys()
print(d2.keys()) # dict_keys(['z', 'x', 'y']) >>>可迭代 # d.values()
print(d2.values()) # dict_values([3, 1, 2]) >>>可迭代 # d.popitems() # 这个是随机删除一组(key:value)元素
print(d2.items()) # dict_items([('z', 3), ('y', 2), ('x', 1)]) >>>可迭代 # d.pop() :d.pop('z','没有这个元素'),后面加默认值,则不报错
print(d2.pop('x')) # # d.setdefult() :没有就添加,有就不添加,返回存在的value
d2.setdefault('x',50)
print(d2) # {'y': 2, 'x': 50, 'z': 3} # d.update(d1)
print(d3,d4) # {'y': 2, 'z': 3, 'x': 1} {'name': None, 'sex': None, 'age': None}
d3.update(d4)
print(d3) # {'y': 2, 'z': 3, 'x': 1, 'name': None, 'sex': None, 'age': None} # in 逻辑判断,查看元素是否在字符串、列表、字典的key中等。。
#
# 自带布尔值
# 所有数据自带布尔值,有当数据为0、None、空的时候为False
#
#
# 集合 -- 关系运算 & 去重
# 元素必须是唯一的。
# s = set() :定义
# 元素为可哈希的
# 元素为无序的
# 循环:
# for i in s:
# print(i)
# 交集:
# s1 & s2
# s1.intersection(s2)
# 并集:
# s1 | s2
# s1.union(s2)
# 差集:
# s1 - s2
# s1.difference(s2)
# s1.difference_update(s2) # 寻找后,进行修改
# 对称差集
# s1 ^ s2
# s1.smmetric_difference(s2)
# s1.update(s2)
# s1.add('1') :添加
# s1.discard('1') :删除--不报错
# s1.remove('1') :删除--会报错
# s1.pop() :随机删除
# s1.issubset(s2) :判断子集
# s1.issuperset(s2) :判断为父集
# s1.disjoint(s2) :两个集合没有交集,返回True








