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

今天我们来总结一下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随身听”,【在看】一下,下期见。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章