• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python--字典(dict)和集合(set)详解

    一、集合

    1.集合定义

    2.创建集合

    s = {1,2,3,4}
    print(s,type(s))
    

    3.去重

    s = {1,2,3,4,3,2,1}
    print(s,)
    

    4.集合增删

    s = {1,2,3}
    s.add(4) #单个元素
    print(s)
    s.update({4,5,6}) #多个元素
    print(s)
    s = {1,2,3,4,5,6}
    s.remove(4) #移除某个
    print(s)
    s.pop() #随机移除
    print(s)
    

    5.关系运算

    s1 = {1,2,3}
    s2 = {1,2,4}
    print(s1 - s2)
    print(s1  s2)
    print(s1 ^ s2)
    print(s1 | s2)
    

    6.排序

    s = {1,6,3,8,5}
    print(sorted(s))
    

    7.frozenset

    当集合元素不需要改变时,使用 frozenset 代替 set 更安全。

    当某些 API 需要不可变对象时,必须用 frozenset 代替set。比如 dict 的 key 必须是不可变对象,因此只能用 frozenset;再比如 set 本身的集合元素必须是不可变的,因此 set 不能包含 set,set 只能包含 frozenset。

    s = frozenset({1,2,3})
    print(s, type(s))
    

    8.练习

    明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从大到小排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

    import random
    s = set()
    n = int(input("the count:"))
    for i in range(n):
        s.add(random.randint(1,1000))
    print(sorted(s,reverse=True))
    

    9.特性

    二、字典

    1.字典定义

    判断字符是否在字典内,注意此处的字符为键值key的内容,而不是value

    d = {'name':'jia' , 'age':'18' , 'city':'xian'}
    print(d,type(d))
    print('name'in d)
    print('jia'in d)
    

    2.字典打印

    键值、value、字典打印

    d = {'name':'jia' , 'age':'18' , 'city':'xian'}
    print(d.keys())
    print(d.values())
    print(d.items())
    print(d['name'])
    print(d['age'])
    print(d['city'])
    

    打印value

    print(d['name'])
    print(d['age'])
    print(d['city'])
    


    按照字典格式,自定义键值和value,获取value

    print(d['province']) #不存在的元素会异常报错
    print(d.get('province', 'shanghai'))
    

    添加及修改字典内value

    d = {'name':'jia', 'age':'18'}
    d['name'] = 'zhao'
    print(d)
    d['city'] = 'xian'
    print(d)
    


    循环打印字典内容

    for item in d:
        print(item)
    for item in d.items():
        print(item)
    


    双变量循环打印字典

    for k,v in d.items():
        print(f'key={k},value={v}')
    

    3.字典元素删除

    方法一:pop()方法弹出指定元素

    d = {'name':'jia' , 'age':'18' , 'city':'xian'}
    d.pop('name')
    print(d)
    

    方法二:del()方法删除指定元素:

    d = {'name':'jia' , 'age':'18' , 'city':'xian'}
    # d.pop('name')
    del d['age']
    print(d)
    

    4.setdefault

    设置键值默认为指定value,当默认value被指定后,不会再改变

    d = {'name':'jia' , 'age':'18' , 'city':'xian'}
    d.setdefault('city','luoyang')
    print(d)
    d.setdefault('city','beijing')
    print(d)
    

    5.defaultdict

    需求:

    我们想要一个能将键(key)映射到多个值的字(即所谓的一键多值字典)

    解决方案:

    1). 字典是一种关联容器,每个键都映射到一个单独的值上。如果想让键映射到多个值,需要将这些多个值保存到容器(列表或者集合)中。

    2). 利用collections模块中的defaultdict类自动初始化第一个值,这样只需关注添加元素.

    from collections import defaultdict
    d = defaultdict(int)
    d['num'] += 1
    print(d)
    d = defaultdict(list)
    d['hosts'].append('host1')
    print(d)
    d = defaultdict(set)
    d['media'].add('demo')
    print(d)
    

    总结

    本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

    您可能感兴趣的文章:
    • Python中的字典到底是有序的吗
    • Python中字典的基础介绍及常用操作总结
    • python 如何将字典写为json文件
    • Python教程按照字典的键或值进行排序方法解析
    • Python中关于字典的常规操作范例以及介绍
    上一篇:详解pytest+Allure搭建方法以及生成报告常用操作
    下一篇:Python入门学习之Python流处理过程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python--字典(dict)和集合(set)详解 python--,字典,dict,和,集合,