day6---字典,集合内置方法

字典

========================字典(dict)基本方法===========================

用途:

定义方式:通过大括号来存储数据,通过key:value来定义键值对数据,每个键值对中间通过逗号分隔

key:一定是一个不可变类型

value:可以是任意类型

字典的三种定义方式·:

1、*****
d1 = {'name':'egon','age':84}

2、*****

d2 = dict({'name':'egon'})

3、zip : 了解即可

l1 = ['name',"age"]
l2 = ['egon',18]
z1 = zip(l1,l2)
print(dict(z1))

常用方法:

1、优先掌握的    1、按照key:value映射关系取值(可存可取)   

2、成员运算in,not in # 默认判断key   

3、len()  # 获取当前字典中键值对的个数

  • d1 = {'name':'egon', 'age': 73}
    print(d1['name'])       根据key取值
    print(d1['age'])
    d1['name'] = 'tank'     根据key换对应的值
    d1['gender'] = 'male'
    print(d1)               添加新的键值对
    print('egon' in d1)     更换了name的值后判断egon是否在字典中。
  • get( ) : 获取指定key的值,如果值不存在·,默认返回None,可以通过第二个参数修改默认返回的内容

    print(d1.get('gender'))

    None
    print(d1.get('gender','male'))

    male
  • keys、values、items 

    print(d1.keys())  # 返回所有的key
    print(d1.values()) # 返回所有的值
    print(d1.items()) # 返回所有的键值对,返回值是列表套元组,每一个键值对都是存在元组

    也可以用for循环提取
    for key in d1.keys():
      print(key)
    for value in d1.values():
      print(value)
    for key,value in d1.items():
      print(key,value)
    key,value = ("name",'age')

    name egon
    age 73
  • pop:删除 : 指定key进行删除,有返回值,返回为对应的value

    a = d1.pop('name')
    print(d1)
    print(a)

    {'age': 73}
    egon
  • popitem() ,随机弹出一个键值对,有返回值,返回只是一个元组

    d1 = {'name':'egon', 'age': 73,'gender':'male','a':"1"}

    s1 = d1.popitem()
    print(s1)
    print(type(s1))

    ('a', '1')
    <class 'tuple'>
  • update : 用新字典替换旧字典

    d1 = {'name':'egon', 'age': 73,'gender':'male','a':"1"}
    d1.update({"b":'2'})
    print(d1)
    d1.update({'name':'tank'})
    print(d1)

    {'name': 'egon', 'age': 73, 'gender': 'male', 'a': '1', 'b': '2'}
    {'name': 'tank', 'age': 73, 'gender': 'male', 'a': '1', 'b': '2'}
  • fromkeys : 生产一个新字典, 第一个参数(列表),它会以第一个参数中各个元素为key,以第二个参数为值,组成一个新字典

    print(dict.fromkeys([1,2,3],'ke'))

    {1: 'ke', 2: 'ke', 3: 'ke'}
  • setdefault :key不存在新增键值对,有返回值,返回新增value,key存在返回对应的value

    d1 = {'name':'egon', 'age': 73,'gender':'male','a':"1"}

    print(d1.setdefault('name',))
    print(d1.setdefault('nameb', 123))
    print(d1)

    egon
    123       #有key的话返回对应的值。没有的话会在字典内添加新的键值对
    {'name': 'egon', 'age': 73, 'gender': 'male', 'a': '1', 'nameb': 123}

    =========================类型总结==========================

    有序or无序  : 无序

    可变or不可变  :可变类型

    存一个值or存多个值 : 存多个值

 

集合

========================集合基本方法===========================

用途: 去重、关系运算

定义方式: 通过大括号存储数据,每个元素通过逗号分隔定义空集合,必须使用set()来定义

l1 = []         #列表

s1 = ""        #字符串

d1 = {}        #字典

ss1 = set()   #集合

常用方法:

合集:|

交集:&

差集:-

对称差集:^

  • 集合中不可能出现两个相同的元素

    ython_student = {'egon', 'jason', 'tank', 'owen', 'egon'}
    linux_student = {'frank', 'alex', 'egon'}
    go_student = {'egon'}

    print(python_student)
    >>:{'tank', 'egon', 'jason', 'owen'}

    print(python_student | linux_student)
    >>:{'tank', 'egon', 'jason', 'owen', 'frank', 'alex'}

    print(python_student & linux_student)
    >>:{'egon'}

    print(python_student - linux_student)
    >>:{'tank', 'jason', 'owen'}

    print(linux_student - python_student)
    >>:{'frank', 'alex'}

    print(python_student ^ linux_student)
    >>:{'tank', 'jason', 'owen', 'alex', 'frank'}

    print(python_student > go_student)
    >>:True

    print(python_student < linux_student)
    >>:False
    l1 = [1, 2, 3, 1, 2, 9, 1, 5, 6, 7]
    print(l1)

    s1 = set(l1)     #把l1变成集合
    print(s1)
    print(type(s1))   #打印他的类型
    l2 = list(s1)     #转换成列表
    print(l2)
    print(type(l2))

    [1, 2, 3, 1, 2, 9, 1, 5, 6, 7]
    {1, 2, 3, 5, 6, 7, 9}
    <class 'set'>
    [1, 2, 3, 5, 6, 7, 9]
    <class 'list'>
  • 可以用for循环来看里面的值

    =========================类型总结==========================

    有序or无序 : 无序

    可变or不可变 : 可变,

    可以删除,添加,不可以更改存

    一个值or存多个值 : 存多个值

posted @ 2019-11-06 17:11  猫-园  阅读(75)  评论(0编辑  收藏  举报