• 学习python的day6之字典与集合


    一、字典

    1.特点:

    1.字典的符号是大括号

    2.数据以键值对形式出现

    3.各键值对用逗号分隔

    创建字典

    有数据的字典

    dict1 = {'name':'张山','age':'19','sex':'男' }

    空字典

    dict2 = {}

    dict3 = dict{}

    注意:冒号前面的key是键,冒号后面的value是值

    2.操作

    增加

    写法:字典序列[key] = 值

    注意:如果key存在则修改这个key的值,不存在就新增这个键值对

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    dict1['name'] = '李四'
    print(dict1)
    dict1['id'] = 1
    print(dict1)
    '''
    输出:
    {'name': '李四', 'age': 18, 'sex': '男'}
    {'name': '李四', 'age': 18, 'sex': '男', 'id': 1}
    '''

    3.删除

    del()/del:删除字典或删除字典中指定的键值对

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    del dict1['sex']
    print(dict1)
    del dict1
    print(dict1)
    
    '''
    输出:
    {'name': '张山', 'age': 18}
    Traceback (most recent call last):
      File "C:/Users/as_sc/PycharmProjects/untitled/hm-python-day6/01-增加数据.py", line 16, in <module>
        print(dict1)
    NameError: name 'dict1' is not defined
    '''

    clear():清空字典

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    dict1.clear()
    print(dict1)
    '''
    输出:
    {}
    '''

    4.修改

    写法:字典序列[key] = 值

    该写法的效果与新增的相同

    5.查找

    key值查找:如果key存在则返回对应的值,否则报错。

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    print(dict1['name'])
    print(dict1['nss'])
    '''
    输出:
    张山
    Traceback (most recent call last):
      File "C:/Users/as_sc/PycharmProjects/untitled/hm-python-day6/01-增加数据.py", line 35, in <module>
        print(dict1['nss'])
    KeyError: 'nss'
    '''

    get()

    语法:字典序列.get(key,默认值)

    注意:如果当前查找的key不存在则返回第二个参数,如果省略第二个参数,则返回None

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    print(dict1.get('name'))
    print(dict1.get('name',13))
    print(dict1.get('nae'))
    print(dict1.get('nae',12))
    '''
    输出:
    张山
    张山
    None
    12
    '''

    keys()和values() 

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    print(dict1.keys())
    print(dict1.values())
    
    '''
    dict_keys(['name', 'age', 'sex'])
    dict_values(['张山', 18, '男'])
    
    '''

    查找字典中所有的key或value,返回一个可迭代对象

    items()

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    print(dict1.items())
    '''
    输出:
    dict_items([('name', '张山'), ('age', 18), ('sex', '男')])
    '''

    查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典的key对应的值

    6.循环遍历

    遍历字典的key

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    for i in dict1.keys():
        print(i)
    '''
    输出:
    name
    age
    sex
    '''

    遍历字典的value

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    for i in dict1.values():
        print(i)
    '''
    输出:
    张山
    18
    男
    '''

    遍历字典的元素

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    for item in dict1.items():
        print(item)
    '''
    输出:
    ('name', '张山')
    ('age', 18)
    ('sex', '男')
    '''

    遍历字典的键值对(对键值对拆包)

    dict1 = {'name':'张山', 'age':18, 'sex':''}
    for key,value in dict1.items():
        print(f'{key}:{value}')
    '''
    输出:
    name:张山
    age:18
    sex:男
    
    '''

    二、集合

    创建集合使用set()或{},如果要创建空集合只能用set(),因为{}用来创建空字典了

    集合是无序的,所以不支持下标操作,且有去重功能

    set1 = {10, 20, 30, 40}
    print(set1)
    print(type(set1))
    set2 = set('abcdf')
    print(set2)
    print(type(set2))
    set3 = {10, 10, 2, 2, 30, 30, 4, 4, 5}
    print(set3)
    print(type(set3))
    '''
    输出:
    {40, 10, 20, 30}
    <class 'set'>
    {'d', 'b', 'c', 'a', 'f'}
    <class 'set'>
    {2, 4, 5, 10, 30}
    <class 'set'>
    
    '''

    注意:用set()创建字典,只能以一个字符串的形式来创建

    set1 = set('abcdef')
    print(set1)
    print(type(set1))
    set2 = set('abcdef','def','edf')
    print(set2)
    print(type(set2))
    '''
    输出:
    {'e', 'f', 'd', 'a', 'b', 'c'}
    <class 'set'>
    Traceback (most recent call last):
      File "C:/Users/as_sc/PycharmProjects/untitled/hm-python-day6/02-集合.py", line 26, in <module>
        set2 = set('abcdef','def','edf')
    TypeError: set expected at most 1 argument, got 3
    '''

    创建空集合,只能用set()

    set1 = set()
    print(set1)
    print(type(set1))
    set2 = {}
    print(set2)
    print(type(set2))
    '''
    输出:
    set()
    <class 'set'>
    {}
    <class 'dict'>
    '''

    集合常见操作方法

    增加

    因为集合有去重功能,所以如果集合中存在要添加的数据,则不会进行任何操作

    add()    用来追加一个数据,追加序列会报错

    set1 = {'10','34'}
    set1.add('10')
    print(set1)
    set2 = {'12', '23'}
    set2.add('121')
    print(set2)
    '''
    输出:
    {'34', '10'}
    {'23', '121', '12'}
    '''

    update()   用来追加一个序列,追加单一数据会报错

    set1 = {'ss', '24'}
    set1.update(['se', 'ef'])
    print(set1)
    '''
    输出:
    {'ef', '24', 'se', 'ss'}
    '''

    remove():删除集合中指定数据,如果数据不存在,则报错

    set1 = {'rf', 'ds', 30}
    set1.remove('ds')
    print(set1)
    
    set2 = {'ss', 'oj', 98}
    set2.remove(100)
    print(set2)  #报错
    '''
    输出:
    Traceback (most recent call last):
      File "C:/Users/as_sc/PycharmProjects/untitled/hm-python-day6/02-集合.py", line 77, in <module>
        set2.remove(100)
    KeyError: 100
    {'rf', 30}
    
    '''

    discard():删除指定数据,数据不存在也不会报错

    set1 = {'rf', 'ds', 30}
    set1.discard('ds')
    print(set1)
    
    set2 = {'ss', 'oj', 98}
    set2.discard(100)
    print(set2) 
    '''
    输出:
    {'rf', 30}
    {'ss', 'oj', 98}
    '''

    pop():随机删除某个数据,并返回该数据

    set1 = {'rf', 'ds', 30}
    a = set1.pop()
    print(a)
    print(set1)
    
    set2 = {'ss', 'oj', 98}
    b = set2.pop()
    print(b)
    print(set2)
    '''
    输出:
    第一次输出
    ds
    {'rf', 30}
    oj
    {98, 'ss'}
    第二次输出:
    ds
    {'rf', 30}
    98
    {'ss', 'oj'}
    '''

    查找数据

    in:判断数据是否在集合中,在返回true,反之false

    not in:判断数据是否不在集合中,不在返回true,反之false

    set1 = {'rf', 'ds', 30}
    print('rf' in set1)
    print('ra' in set1)
    print('ra' not in set1)
    print('rf' not in set1)
    '''
    输出:
    True
    False
    True
    False
    
    '''
  • 相关阅读:
    Matlab命令集常用字符串函数
    统计独立性和统计相关性
    查看solaris下硬盘的物理大小
    Perl命令行开关
    DateFormat.getDateInstance出现Unparseable date
    ActiveMQ 本地转本地再转远程的完整配置
    aspose.words 操作word生成试卷
    汇编in和out介绍
    eclipse开发国际化项目利器:MultiProperties
    RCP+GEF+界面开发(2)[eclipse插件配置LINK方法]
  • 原文地址:https://www.cnblogs.com/scheduled/p/13833349.html
Copyright © 2020-2023  润新知