美文网首页
Python基础练习与代码示例之list

Python基础练习与代码示例之list

作者: DE8UG | 来源:发表于2019-12-05 16:47 被阅读0次

    今天我们来总结一下Python里面差不多最常用的一种数据类型:list.

    主要参考:https://docs.python.org/zh-cn/3/library/stdtypes.html#typesseq-common

    DE8UG的代码环境为:

    • Windows10
    • python3.7

    概念

    列表是可变序列,通常用于存放同类项目的集合。

    list的类定义为:
    class list([iterable])

    可以用多种方式构建列表:

    • 使用一对方括号来表示空列表: []
    • 使用方括号,其中的项以逗号分隔: [a], [a, b, c]
    • 使用列表推导式: [x for x in iterable]
    • 使用类型的构造器: list() 或 list(iterable)

    构造器将构造一个列表,其中的项与 iterable 中的项具有相同的的值与顺序。 iterable 可以是序列、支持迭代的容器或其它可迭代对象(DE8UG注解:iterable就是一个关键词,代表了Python里面的可迭代对象这个概念)。 如果 iterable 已经是一个列表,将创建并返回其副本,类似于 iterable[:]。 例如,list('abc') 返回 ['a', 'b', 'c'] 而 list( (1, 2, 3) ) 返回 [1, 2, 3]。 如果没有给出参数,构造器将创建一个空列表 []。

    其它许多操作也会产生列表,包括 sorted() 内置函数。

    列表实现了所有 一般可变 序列的操作。 列表还额外提供了以sort方法,sort方法我们放到以后和排序一起讲解。

    下面先看一下一般可变 序列的操作都有哪些。

    函数/操作

    先看一般的操作,也就是序列的通用操作:

    在表格中,s 和 t 是具有相同类型的序列,n, i, j 和 k 是整数而 x 是任何满足 s 所规定的类型和值限制的任意对象。

    in 和 not in 操作具有与比较操作相同的优先级。 + (拼接) 和 * (重复) 操作具有与对应数值运算相同的优先级。

    (图表如果显示不出,请微信搜索:Python随身听,查看历史文章)

    表1:

    再来看可变 序列的操作。
    下面表格中的 s 是可变序列类型的实例,t 是任意可迭代对象,而 x 是符合对 s 所规定类型与值限制的任何对象 。

    表2:

    代码演示

    一般:

    In [1]: s=[1,2,3]
    
    In [2]: t=[4,5,6]
    
    In [3]: 1 in s
    Out[3]: True
    
    In [4]: 4 not in s
    Out[4]: True
    
    In [5]: s+t
    Out[5]: [1, 2, 3, 4, 5, 6]
    
    In [6]: s*2
    Out[6]: [1, 2, 3, 1, 2, 3]
    
    In [7]: s[2]
    Out[7]: 3
    
    In [8]: s[1:2]
    Out[8]: [2]
    
    In [9]: len(s)
    Out[9]: 3
    
    In [10]: max(s)
    Out[10]: 3
    
    In [11]: min(s)
    Out[11]: 1
    
    In [12]: s.index(2)
    Out[12]: 1
    
    In [13]: s.count(2)
    Out[13]: 1
    

    可变序列:

    In [14]: s=['a','b','c','d']
    
    In [15]: t=['tom','de8ug','jack','marry']
    
    In [16]: s[1]='tom'
    
    In [17]: s
    Out[17]: ['a', 'tom', 'c', 'd']
    
    In [18]: s[2:3]=t
    
    In [19]: s
    Out[19]: ['a', 'tom', 'tom', 'de8ug', 'jack', 'marry', 'd']
    
    In [20]: del s[2:3]
    
    In [21]: s
    Out[21]: ['a', 'tom', 'de8ug', 'jack', 'marry', 'd']
    
    In [22]: s.append('lilei')
    
    In [23]: s
    Out[23]: ['a', 'tom', 'de8ug', 'jack', 'marry', 'd', 'lilei']
    
    In [24]: s.extend(t)
    
    In [25]: s      
    Out[25]:        
    ['a',           
     'tom',         
     'de8ug',       
     'jack',        
     'marry',       
     'd',           
     'lilei',       
     'tom',         
     'de8ug',       
     'jack',        
     'marry']       
                    
    In [26]: s*2    
    Out[26]:        
    ['a',           
     'tom',         
     'de8ug',       
     'jack',        
     'marry',       
     'd',           
     'lilei',       
     'tom'...]
    
    In [27]: s.insert(1,'hmm')
    
    In [28]: s
    Out[28]:
    ['a',
     'hmm',
     'tom',
     'de8ug',
     'jack',
     'marry',
     'd',
     'lilei',
     'tom',
     'de8ug',
     'jack',
     'marry']
    
    In [29]: s.pop(0)
    Out[29]: 'a'
    
    In [30]: s
    Out[30]:
    ['hmm',
     'tom',
     'de8ug',
     'jack',
     'marry',
     'd',
     'lilei',
     'tom',
     'de8ug',
     'jack',
     'marry']
    
    In [31]: s.remove('de8ug')
    
    In [32]: s
    Out[32]: ['hmm', 'tom', 'jack', 'marry', 'd', 'lilei', 'tom', 'de8ug', 'jack', 'marry']
    
    In [33]: s.reverse()
    
    In [34]: s
    Out[34]: ['marry', 'jack', 'de8ug', 'tom', 'lilei', 'd', 'marry', 'jack', 'tom', 'hmm']
    

    ok,希望上面的代码你都自己练习一遍,这样在以后用到某个方法时候才能知道怎么回事儿。

    有任何问题欢迎留言,wx搜索“Python随身听”,【在看】一下,下期见。

    相关文章

      网友评论

          本文标题:Python基础练习与代码示例之list

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