python dict和set

dict 字典

简介:
  1. 字典是另一种可变容器模型,且可存储任意类型对象。

  2. 键必须是唯一的,但值则不必;值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组

  3. 使用键-值(key-value)存储,具有极快的查找速度。

    
    # 创建方式
    
    dict1 = {'name': 'tom', 'age': 10, 'address': 'beijing'}
    dict2 = dict(name='Tom', age=10, address='beijing')
    dict3 = dict([('name', 'tom'), ('age', 10), ('address', 'beijing')])
    
    
    # 快速构建
    
    quick_dict = dict.fromkeys([1, 2, 3], 'python')
    print(quick_dict) # {1: 'python', 2: 'python', 3: 'python'}

遍历dict

simple_dict = {'name': 'tom', 'age': 10, 'address': 'beijing'}

# 遍历key
for key in simple_dict.keys():
    print(key)

# 遍历value
for value in simple_dict.values():
    print(value)

# 遍历key-value
for key, value in simple_dict.items():
    print(key, value)

字典相关操作

  1. 根据键访问值
    simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'}
    
    
    # 获取元素
    
    print(simple_dict['name'])  # Tom
    
    # print(simple_dict['nameAAA'])  # 异常:KeyError
    
    
    
    
    # 使用get方法,可以设置默认值
    
    print(simple_dict.get('age'))  # 10
    print(simple_dict.get('test'))  # None
    print(simple_dict.get('test', 100))  # 100
  2. 判断key是否存在
    simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'}
    
    print('name' in simple_dict)  # True
    print(simple_dict.__contains__('name'))  # True
    print(simple_dict.__contains__('test'))  # False
  3. 添加元素
    simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'}
    simple2_dict = {'A': 'a', 'B': 'b', 'C': 'c'}
    
    simple_dict['id'] = '10001'  # 添加元素
    
    simple_dict.update(simple2_dict)  # 添加字段所有元素
  4. 删除元素
    simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'}
    
    
    # 删除指定key,并返回value
    
    age = simple_dict.pop('age')
    
    
    # 删除key
    
    del simple_dict['address']
    
    
    # 情况dict
    
    simple_dict.clear()
    
    
    # 删除对象
    
    del simple_dict
  5. 修改元素
    simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'}
    
    
    # 修改元素
    
    simple_dict['name'] = 'Jim'
  6. 赋值: = 和 copy
    simple_dict = {'name': 'Tom', 'age': 10, 'address': 'beijing'}
    
    
    # 赋值地址
    
    simple2_dict = simple_dict
    simple2_dict['name'] = 'Jim'
    
    print(simple2_dict)  # {'name': 'Jim', 'age': 10, 'address': 'beijing'}
    print(simple_dict)  # {'name': 'Jim', 'age': 10, 'address': 'beijing'}
    
    
    
    # copy:赋值值
    
    simple3_dict = simple_dict.copy()
    simple3_dict['name'] = 'Jake'
    
    print(simple3_dict)  # {'name': 'Jake', 'age': 10, 'address': 'beijing'}
    print(simple_dict)  # {'name': 'Tom', 'age': 10, 'address': 'beijing'}
  7. setdefault
    simple_dict = {'name': 'Jim', 'age': 20, 'height': 172}
    
    
    # 设置默认值并获取值
    
    default = simple_dict.setdefault('test', 100)

排序

根据value排序

num_dict = {'a': 5, 'b': 9, 'c': 1, 'd': 7, 'e': 6}

new_dict = dict(sorted(num_dict.items(), key=lambda item: item[1]))
print(new_dict)  # {'c': 1, 'a': 5, 'e': 6, 'd': 7, 'b': 9}
num_dict = {'a': 5, 'b': 9, 'c': 1, 'd': 7, 'e': 6}
tmp_dict = {}

values = num_dict.values()
values = sorted(values)
for i in values:
    for k, v in num_dict.items():
        if i == v:
            tmp_dict[k] = v
print(tmp_dict) # {'c': 1, 'a': 5, 'e': 6, 'd': 7, 'b': 9}

set 集合

简介
  1. 集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。

  2. 创建一个空集合,你必须用 set() 而不是 {};后者创建一个空的字典 。

    
    # 创建方式
    
    set1 = {1, 2, 3, 4, 5}
    set2 = set([1, 2, 3, 4, 5])
    set3 = set('abcdefg')

集合相关操作

simple_set = {'A', 'B', 'C', 'D', 'E', 'F'}

# 添加
simple_set.add('AAA')

# 删除
simple_set.remove('AAA')

# 更新
simple_set.update({'M', 'N'})
frozenset
# 不可以改变(增删改)
simple2_set = frozenset({1, 2, 3, 4, 5})
操作符 (&、|、-、^)
a = {1, 2}
b = {2, 3}

c = a & b  # 交集
d = a | b  # 并集
e = a - b  # 差集
f = a ^ b  # 异或集合

print(c)  # {2}
print(d)  # {1, 2, 3}
print(e)  # {1}
print(f)  # {1, 3}

猜你喜欢

转载自blog.csdn.net/qq_14876133/article/details/80939747
今日推荐