• Python 元组、字典、集合操作总结


    元组

    a=('a',)

    a=('a','b')

    特点

    有序

    不可变,不可以修改元组的值,无法为元组增加或者删除元素

    元组的创建

    a=('a',)

    a=('a','b')

    tuple('abcd')

    转化为元组

    tuple(i for i in range(10))

    生成器推导式转化为元组,生成器推导式产生的生成器对象只能遍历一次

    g=( i for i in range(10))

    next(g)

    单步迭代生成器对象

    for i in g:

    print(i,end='')

    直接迭代生成器对象

    a=[1,2,3,4]

    b=['a','b','c','d']

    for I in zip(a,b):

    print(i)

    (1,'a')

    (2,'b')

    (3,'c')

    (4,'d')

    Zip接受a和b 作为参数,把对应位置的元素打包成一个个元组,返回zip对象

    元组的遍历

    for I in a:

    print(i)

    for I in range(len(a)):

    print(a[i])

     

    元组的删除

    del a

    删掉整个元组

     

     

    字典

    {'a':1,'b':2,'c':3}

     

    特点

    键是任意不可变的数据,键不允许重复

    值可以重复,可以修改的

    无序可变

    不可以使用

    for i in range(len(a)):

    a[i]

    这种方式来遍历

    在字典中[]操作符表示读取某键对应的值

    字典的创建

    a={'a':1,'b':2,'c':3}

     

    Keys=['a','b','c','d']

    Values=[1,2,3,4]

    dict(zip(keys,values))

    通过已有的键值对快速创建字典

    D=dict(name='Dong',age=37)

    {'name':'Dong','age'=37}

    但是不能写成

    Dict(1=2)

    Dict('name'='Dong')

    这样会抛keyword cannot be an experssion的异常

     

    a=dict.fromkeys(['name','age','sex'])

    给定键值,值为空

    mca={"a":1, "b":2, "c":3, "d":4}

    dicts={v:k for k,v in mca.items()}

    结果为

    {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

    字典推导式

    字典元素的读取

    a['name']

    若name存在,则返回值,若name不存在,则keyError

    a.get('name','Amy')

    获得指定的键对应的值,如果键不存在,则返回指定的值

    字典元素的添加与修改

    a['age']=38

    若键存在,表示修改键的值,若不存在,表示添加一个新的键值对

    a.update({'a':a,'b':b})

    将另一个字典中的键值对添加到a中,如果键值有相同的,则以另一个字典中的值为准

    字典元素的删除

    del(a['age'])

     

    a.pop('age')

    删除指定键的元素并返回指定键的值

    a.popitem()

    随机删除并返回键值对

    a.clear()

    删除字典中所有元素

    字典的遍历

    a={'name':'Dong','age'=37}

    for item in a.items():

    print(a)

    ('age',37)

    ('name',Dong)

    items() 方法返回键值对

    是dict_items类型的

    for I in a:

    print(i)

    'name'

    'age'

    啥也不写,就是遍历键

    for i in a.keys():

    print(i)

    'name'

    'age'

    keys()方法返回键

    是dict_keys类型的

    for i in a.values():

    print(i)

    'Dong'

    '37'

    values()方法返回值,是dict_values类型的

    字典的应用

      

    统计频率

    d=dict()

    for ch in z:

    d[ch]=d.get(ch,0)+1

    如果ch在字典中已经存在,那么get就会返回频率 ,频率+1,如果不存在,那么get返回0,+1,频率就是1

     

     

    集合

    a={3,5}

     

    特点

    无序可变

    集合中元素不许重复

    集合的创建

    X={random.randint(1,500) for i in range(100)}

    集合推导式

    set([1,1])

    {1}

    转化为集合,如果原来的数据中存在重复元素,在转换位集合时只保留一个

    set()    不是{} 这个是空字典

    创建一个空集合

    集合元素的添加

    a.add(7)

    往集合中加入重复的元素,是加不进去的,也不会有任何异常

    集合元素的删除

    a.pop()

    删除任意一个集合中的元素

    a.remove(3)

    从集合中删除3

    a.clear()

    从集合中删除所有元素

    集合的操作

    并集

    a|b

    a.union(b)

    交集

    a&b

    a.intersection(b)

    差集

    a-b

    a.difference(b)

    对称差

    a^b

    a.symmetric_difference(b)

    集合大小(一个 set 比另一个 set 小,只有在第一个 set 是第二个 set 的 subset 时)

    a<b

     

    判断是否是子集

    a.issubset(b)

     

    集合的应用

    提取序列中所有不重复的元素

    a=set(list_b)

     

    生成不重复的随机数

    data=set()

    while True:

    data.add(random.randint(0,100))

    if len(data)==20

    break

     
  • 相关阅读:
    bootstrap 模态框日期控件datepicker被遮住问题的解决
    (转)Jetty实战之 安装 运行 部署
    (转)Redis研究(一)—简介
    在jboss上部署web应用
    webSphere
    Weblogic部署项目三种方式
    js构造函数详解
    范仁义js课程---51、作用域实例
    javascript疑难问题---7、使用var和不使用var声明变量的区别
    范仁义js课程---50、函数作用域
  • 原文地址:https://www.cnblogs.com/unflynaomi/p/6535990.html
Copyright © 2020-2023  润新知