zoukankan      html  css  js  c++  java
  • 字典、集合、文件处理

    主要内容:
    字典 集合 文件处理 字符编码

    1、字典
    dict简介
    dict就是key value值,索引有意义,数据无序

    key定义规则:
    a:不可变--数字、字符串、元组(可变--列表、字典)
    b:不能重复

    定义
    D = {
    'name':'zs',
    'age':'12',
    'sid':'01'
    }
    #增
    D['wid']='001'
    D.setdefault('gender','MEN')
    D.setdefault('gender',[]).append('MEN')
    D.setdefault('gender',[]) and D['gender'].append('MEN')

    #删
    del D['wid']
    D.pop('name') #索引不存在,报错"KeyError",并且终止程序
    D.popitem() #没有参数,随机删除数据(key,value)

    #改
    D['age']=21
    D.update

    #查
    print(D['age'])
    print(D['agedsd']) #查找索引不存在,报错"KeyError",并且终止程序
    print(D.get('name'))
    print(D.get('hjahs')) #查找索引不存在打印"None",不会中断程序

    清空字典:
    dic.clear()
    拷贝字典:
    dic1=dic.copy()

    快速生成字典
    dic2=dict.fromkeys('abc',1) #快速生成的办法,对应所有的value值对应内存中同一个地址,更改一个会将所有的值全部修改

    #item()方法,
    #数据量大时不要使用,会将所有的数据全部转化为列表,然后在列表中查找数据
    for k,v in dic.item():
    print(k,v)

    #打印keys
    #数据量大时,使用key的方法
    print (dict1.keys())
    for i in (dict1.keys()):
    print(i,dict1[i])

    #打印values
    print (dict1.values())

    #浅copy
    D1 = D.copy()
    D1["sid"][2] = 4
    print(D)
    print(D1)
    print (id(D["sid"]),id(D1["sid"]))
    输出:
    F:PythonPython3python.exe D:/python培训/our_python/day3/练习.py
    {'age': '12', 'name': 'zs', 'sid': [1, 2, 4]}
    {'age': '12', 'name': 'zs', 'sid': [1, 2, 4]}
    5273280 5273280

    #深copy
    strip()去空格、换行符
    import copy
    D = {
    'name':'zs',
    'age':'12',
    'sid':[1,2,3]
    }
    D2 = copy.deepcopy(D)
    D1 = D.copy()
    D1["sid"][2] = 4

    print(D) #原字典
    print(D1) #浅拷贝,只拷贝外层
    print(D2) #深拷贝,完全拷贝一份
    print (id(D["sid"]),id(D1["sid"]))
    print (id(D["sid"]),id(D2["sid"]))
    输出:
    F:PythonPython3python.exe D:/python培训/our_python/day3/练习.py
    {'sid': [1, 2, 4], 'name': 'zs', 'age': '12'}
    {'sid': [1, 2, 4], 'name': 'zs', 'age': '12'}
    {'sid': [1, 2, 3], 'name': 'zs', 'age': '12'}
    7235584 7235584
    7235584 7234464

    2、集合
    s1 = {1,2,3,4,5}
    s2 = {2,3}

    基本方法:全部不修改s1和s2
    #交集
    print(s1&s2)
    print(s1.intersection(s2))

    #并集
    print(s1|s2)
    print(s1.union(s2))

    #差集
    print(s1-s2)
    print(s1.difference(s2))
    print(s2-s1)
    print(s2.difference(s1))

    #对称差集 s1|s1 - s1&s2
    print(s1^s2)
    print(s1.symmetric_difference(s2))

    #子集
    print(s1<=s2)
    print(s1.issubset(s2))
    print(s2<=s1)
    print(s2.issubset(s1))

    #父集
    print(s1>=s2)
    print(s1.issuperset(s2))
    print(s2>=s1)
    print(s2.issuperset(s1))

    其他内置函数:
    s1 = {1,2,3,a,c}
    s1.update(s2) #更新
    add('hello') #增加
    s1.pop() #随机删除
    s1.remove('a') #指定删除;删除元素没有报错KeyError,终止程序
    s1.remove() #没有参数,报错TypeError
    s1.discard('a') #指定删除;删除元素没有,返回None
    s1.difference_update(s2) #s1=s1-s2 最终会修改s1的值

    3、字符编码
    A:内存固定使用unicode编码,无法改变
    B:存入和读取使用编码必须一致
    C:运次程序过程:从硬盘读取到内存,python解释器运行
    D:.py文件中指定的编码是指定从硬盘中读取数据时使用的编码格式
    写入硬盘encode指定编码
    读入内存decode指定编码
    #coding:gbk
    #_*_coding:gbk_*_

    4、文件处理
    a = {'name':'asd'}

    eval(a) 字符串转换成字典

    例如下图:

  • 相关阅读:
    H5实现魔方游戏
    T-SQL:CTE用法(十)
    c# API接收Base64转图片
    T-SQL :联接查询练习 (杂)
    T-SQL:基础练习(杂)
    UI5-文档-导航栏
    UI5-文档-4.10-Descriptor for Applications
    UI5-文档-4.9-Component Configuration
    UI5-文档-4.8-Translatable Texts
    UI5-文档-4.7-JSON Model
  • 原文地址:https://www.cnblogs.com/feiyu_Team/p/5992359.html
Copyright © 2011-2022 走看看