欢迎来到我的博客园

python学习[第八篇] 数据类型之 列表

python学习[第八篇] 数据类型之 列表

列表的增删改查

1列表的创建和赋值

创建列表就像给变量赋值一样。列表由方括号定义。列表可以包含任意类型的值

alist=[123,'abc',4.56,True,['inner','list']

2 查看列表

通过索引或切片来查看列表的值

alist[0]

alist[0:2]

3 更新列表

通过指定索引或者索引范围来更新一个或几个值

alist[2]='abcde'

alist[2:3]=['abcde',4.567]

4  删除列表

删除列表的元素

del alist[1]

alist.remove(123)

删除整个列表

del alist

操作符

1 标准类型操作符

对象值操作符: = > >= < <= !=  <>

对象身份操作符: is  is not

布尔操作符:  and or not 

2 序列操作符

切片操作符

列表的切片使用方法和字符串一样,不同的是列表操作符可以多层叠加

alist=[123,'abc',4.56,True,['inner','list']
alist[4][1]

成员操作符 in not in

alist=[123,'abc',4.56,True,['inner','list']]
123 in alist
['inner','list'] in alist

连接操作符 + 只能是列表+列表

alist=[123,'aaa','bbbb']
blist=['ccc'123]
alist+ blist

重复操作符 * list*num

alist=[12,34]
alist*2

列表解析 返回列表

[ i for i in [12,34,56]] 
[ i ** 2 for i in range(0,10) if i %2==0 ]

 

内建函数

标准类型内建函数

cmp()

列表元素cmp函数规则

1 对比两个列表的元素进行比较

2 如果比较的元素是同类型的,则比较其值,返回结果

3 如果两个元素不是同类型的,则检查他们是否是数字

   a 如果是数字,执行必要的数字强制类型转换,然后比较

   b 如果有一方元素是数字,则另一方元素大,(数字是最小的)

   c 否则通过类型的名字的字母顺序进行比较

4 如果有一个列表首先达到末尾,则另一个长一点的列表大

5 如果遍历了所有的元素,而且所有元素都是相等的,也就是说两个列表相等,则返回0。

alist=[123,345]
blist=[123,345.0]
cmp(alist,blist)
--0
type(obj) repr(obj) str(obj) type(obj) 函数和字符串类似,不再细说

序列类型函数

len() len函数返回列表的元素个数。

max() min() 对于列表元素中只是数字或字符串类型较多。

orted() reversed() 同样 对于列表元素中只是数字或字符串类型较多。

enumerate() zip()函数 

sum()函数只适用于列表中元素都是数字类型.

alist=[123,345,567]
len(alist)
max(alist)
min(alist)
sorted(alist)
for t in reversed(alist):
    print t

for i ,x in enumerate(alist):
    print x 

blist=[1,2,3]

for x,y in zip(alist,blist):
    print x,y

sum(alist)

 

list() tuple() 函数  

list tuple函数接收可迭代对象作为参数,=,并通过浅拷贝来创建一个新的列表或元组。

 

列表内建函数

重点:那些可以改变对象值得可变对象的方法是没有返回值的。

list.append(obj)   向列表中添加一个对象obj,返回None

list.count(obj)      返回一个对象obj在列表中出现的次数

list.extend(seq)  把序列seq的内容添加到列表中,返回None

list.index(obj,i=0,j=len(list))  返回list[k]=obj的k值,并且k的范围在i<=k<j ,否则引发ValueError

list.insert(index,job)    在索引量为index的位置插入对象obj

list.pop(index=-1)    删除并返回指定位置的对象,默认是最后一个对象

list.remove(obj)       从列表中删除对象obj

list.reverse()  原地反转列表,返回None

list.sort(func=None,key=None,reverse=False)    以指定的方式排序列表中的成员,如果func和key参数指定则按照指定的方式比较各元素,如果reverse标志被置为True则列表反向排列,原地执行,返回None

>>> alist=['abcde','xxxx','zzz']
>>> alist.append('zzz')

>>> alist=['abcde','xxxx','zzz']
>>> x=alist.append('zzz')
>>> x
>>> print x
None
>>> alist
['abcde', 'xxxx', 'zzz', 'zzz']
>>> alist.count()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: count() takes exactly one argument (0 given)
>>> alist.count('zzz')
2
>>> y=alist.extend(('123','456'))
>>> y
>>> print y
None
>>> alist
['abcde', 'xxxx', 'zzz', 'zzz', '123', '456']
>>> y=alist.extend('123')
>>> print y
None
>>> alist
['abcde', 'xxxx', 'zzz', 'zzz', '123', '456', '1', '2', '3']

>>> alist.index('1')
6
>>> alist.insert('0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: insert() takes exactly 2 arguments (1 given)
>>> alist.insert(6,'0')
>>> alist
['abcde', 'xxxx', 'zzz', 'zzz', '123', '456', '0', '1', '2', '3']
>>> alist.pop()
'3'
>>> alist.pop(index=-1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop() takes no keyword arguments
>>> alist.pop(-1)
'2'
>>> list.remove('1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: descriptor 'remove' requires a 'list' object but received a 'str'
>>> alist.remove('1')
>>> alist
['abcde', 'xxxx', 'zzz', 'zzz', '123', '456', '0']
>>> x=alist.reverse()
>>> print x
None
>>> alist
['0', '456', '123', 'zzz', 'zzz', 'xxxx', 'abcde']
>>> alist.sort()
>>> alist
['0', '123', '456', 'abcde', 'xxxx', 'zzz', 'zzz']
>>>
>>> alist.sort(reverse=True)
>>> alist
['zzz', 'zzz', 'xxxx', 'abcde', '456', '123', '0']

 

列表特殊性

列表可以实现堆栈和队列

posted @ 2018-07-14 18:34  panzq  阅读(311)  评论(0编辑  收藏  举报