美文网首页
7 列表推导式、dict、string的一些其他方法

7 列表推导式、dict、string的一些其他方法

作者: 萌二宝 | 来源:发表于2020-03-17 18:10 被阅读0次

    列表推导式

    列表推导式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
    创建一个list

    l = list(range(1, 7))
    ------------------------
    [1,2,3,4,5,6]
    

    但是如果要生成[1 * 1,2 * 2,3* 3,4* 4,5 * 5,6 * 6]时, 有两种方式

    • 循环
    L = []
    for x in range(1, 7):
       L.append(x * x)
    print(L)
    --------------------------
    [1, 4, 9, 16, 25, 36]
    

    循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:

    • 列表推导式
    l = [ x * x for x in range(1, 7)]
    

    dict

    • 具有一系列成对对象。一个叫做key, 一个叫做value。
    • 无顺序, key不可重复
    • 通过其中一个key可以唯一确定另外一个value, 反之未必。
    • 可以添加和删除
    • 其中的元素(包括key和value)不需要是同类型。
    • key必须是不可变对象
    dicPerson = ['name': 'coco', 'gender': 'M', 'love':'all']
    del ab['name']
    # 通过 in 判断 key 是否存在
    ‘address’ in dicPerson    # false
    # get(), 如果key不存在,可以返回None
    dicPerson.get('address')
    # 删除 key
    dicPerson.pop('gender')
    
    

    ** 和list比较,dict有以下几个特点:**

    • 查找和插入的速度极快,不会随着key的增加而变慢;
    • 需要占用大量的内存,内存浪费多。

    而list相反:

    • 查找和插入的时间随着元素的增加而增加;
    • 占用空间小,浪费内存很少。

    所以,dict是用空间来换取时间的一种方法。

    set

    • 具有一组对象, 无顺序, 不可重复
    • 可以添加和删除。
    • 其中的元素不需要是同类型, 但必须是不可变对象
    • 重复元素自动过滤
    s = set([1, 2, 3])
    s
    -------------------
    {1, 2, 3}
    
    
    s = set([1, 1, 2, 2, 3, 3])
    s
    --------------------------------
    {1, 2, 3}
    
    • set 的add和 remove
    >>> s.add(4)
    >>> s
    {1, 2, 3, 4}
    >>> s.add(4)
    >>> s
    {1, 2, 3, 4}
    >>> s.remove(4)
    >>> s
    {1, 2, 3}
    

    set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

    >>> s1 = set([1, 2, 3])
    >>> s2 = set([2, 3, 4])
    >>> s1 & s2
    {2, 3}
    >>> s1 | s2
    {1, 2, 3, 4}
    

    string的一些其他方法

    字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

    • startswith
    • endswith
    • in
    • find
    • replace
    • upper
    • lower
    • join
    • split
    ååå 截屏2020-03-17下午6.01.02.png

    相关文章

      网友评论

          本文标题:7 列表推导式、dict、string的一些其他方法

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