美文网首页
2021-12-03 Python-11

2021-12-03 Python-11

作者: MaggieXie | 来源:发表于2021-12-03 20:17 被阅读0次

    集合

    集合与字典类似,但是只有键没有值。所以结合中的元素是无序且唯一的且不可变。

    1. 集合的创建
      集合可以直接通过 set 函数或者用 {} 创建。
    a=set([1,2,3,4,5])
    a={1,2,3,4,5}
    
    1. 集合的运算
      集合支持数学上的结合操作,比如交集,并集
    b={3,4,5,6,7,8}
    #取并集
    a.union(b) 
    a | b
    #取交集
    a.intersection(b)
    a&b
    a.intersection_update(b) #将a和b的交集传递给a
    a.difference(b) #在a不在b中的元素
    a.difference_update(b) #在a不在b中的元素传递给a
    a.issubset(b) #如果a是b的子集,返回True
    a.isupperset #如果a包含b,返回True
    
    1. 集合增加和删除元素
      集合不像字典,不能对 key 的进行赋值。
    x='added value'
    a.add(x) #将某个元素增加到集合中
    a.update(b) #将a变成a和b的交集,注意和set.union区分开。后者取交后原集合的内容不变
    a.pop() #无参数,随机删除集合中的元素
    a.remove('added value') #删除特定的元素
    
    

    列表、集合、字典推导式

    列表推导式的基本形式为:
    [expr for val in collection if condition]
    与 for 循环是等价的

    result=[]
    for val in collection:
        if condition:
            result.append(expr)
    

    举个例子,体会一下推导式的便利。

    #给定一个字符串列表,过滤长度>2的元素,并将字母改成大写
    strings=['a','as','bat','car','dove','python']
    strings_1=[string.upper() for string in strings if len(string)>2]
    strings_1
    #结果:['BAT', 'CAR', 'DOVE', 'PYTHON']
    #如果不按照推导式
    strings_1=[]
    for string in strings:
        if len(string)>2:
            strings_1.append(string.upper())
    #结果与上述相同
    
    

    字典推导式与列表推导式相似
    {key-express : value_express for val in collection if condition}
    集合推导式
    {expr for val in colletion if condition}

    嵌套列表推导式

    如果列表中嵌套了列表,需要用到列表的嵌套推导式

    #存在data为由两个列表组成的列表,找出所有包含了2个以上字母e的名字
    data=[['John','Emily','Michael','Mary','Steven'],['Maria','Juan','Javier','Pilar']]
    data_update=[name for sublist in data for name in sublist if name.count('e') >=2]
    #结果:['Steven']
    #嵌套格式也可以写作
    data_update=[[name for name in sublist if name.count('e') >=2] for sublist in data ]
    #相当于
    data_update=[]
    for sublist in data:
        sublist_update=[name for name in sublist if name.count('e')>=2]
        data_update.extend(sublist_update)
    #结果与上述相同
    
    

    相关文章

      网友评论

          本文标题:2021-12-03 Python-11

          本文链接:https://www.haomeiwen.com/subject/xtrmxrtx.html