您的位置:首页 > 编程语言 > Python开发

python列表

2016-06-23 19:12 447 查看

一、列表的基本知识

列表的定义:

空列表:

>>> []      #空的列表
[]
>>> type([])
<type 'list'>
>>> a = []
>>> bool(a)
False
>>>


**注意:**python的列表中的元素可以是任何python对象,可以是字典、集合、列表等等。

如下例子,列表中元素可以是任何对象:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> a
['laoshi', 25, 89.9, ['laoshi', 25, 89.9]]


列表的索引和切片:

简单取出:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> a[0]         #列表索引是从0开始的
'laoshi'
>>> a[1]
25
>>> a[2]
89.9
>>> a[0:2]
['laoshi', 25]
>>> a[:2]        #[]中左边的值不写,表示从头开始
['laoshi', 25]
>>> a[0:]        #[]中右边的值不写,意思就是到结尾为止
['laoshi', 25, 89.9, ['laoshi', 25, 89.9]]
>>>


从列表右边开始的话,-1 是第一个索引:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> a[-1]
['laoshi', 25, 89.9]


取出列表中的列表中的元素,例如:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> a[3]
['laoshi', 25, 89.9]
>>> a[3][0]    #相当于二维列表
'laoshi'
>>>


获取的列表的索引,即下标,例如:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> a.index(25)
1
>>> a.index("laoshi")
0


列表的反转

第一种写法:

>>> lst = [1,2,3,4,5,6]
>>> lst[::-1]   # -1是指步长为1,并代表反方向
[6, 5, 4, 3, 2, 1]
>>> lst[0:4:2]  # 0为起始值,4为末尾值,2为步长,并代表正方向
[1, 3]
>>>


第二种写法:

>>> lst = [1,2,3,4,5,6]
>>> list(reversed(lst))
[6, 5, 4, 3, 2, 1]
>>>


列表的基本操作:

列表的长度 len 的操作,例如:

>>> lst = [1,2,3,4,5,6]
>>> len(lst)
6


”+“的加法操作,例如:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> lst = [1,2,3,4,5,6]
>>> lst + a
[1, 2, 3, 4, 5, 6, 'laoshi', 25, 89.9, ['laoshi', 25, 89.9]]
>>>


“ * ”乘法的操作,作用是列表元素重复,例如:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> a*2
['laoshi', 25, 89.9, ['laoshi', 25, 89.9], 'laoshi', 25, 89.9, ['laoshi', 25, 89.9]]
>>>


in、max()、min()、cmp() 的操作,例如:

>>> a = ["laoshi",25,89.9,["laoshi",25,89.9]]
>>> lst = [1,2,3,4,5,6]
>>> 25 in a      # ni的操作表示该元素是否在列表中
True
>>> max(lst)
6
>>> min(lst)
1
>>> max(a)
'laoshi'
>>> min(a)
25
>>> cmp(a,lst)
1
>>>


二、列表的常用函数

追加和扩展:append、Extend

>>> dir(list)
['__add__', '__class__', '__contains__',
'__delattr__', '__delitem__', '__delslice__',
'__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getslice__',
'__gt__', '__hash__', '__iadd__', '__imul__',
'__init__', '__iter__', '__le__', '__len__',
'__lt__', '__mul__', '__ne__', '__new__',
'__reduce__','__reduce_ex__', '__repr__',
'__reversed__', '__rmul__','__setattr__',
'__setitem__', '__setslice__','__sizeof__',
'__str__', '__subclasshook__', 'append',
'count', 'extend', 'index', 'insert', 'pop',
'remove', 'reverse', 'sort']
>>>


append()的用法:

>>> help(list.append)
Help on method_descriptor:

append(...)
L.append(object) -- append object to end

>>>


举例如下:

>>> a = [1,2]
>>> a.append(100)
>>> a
[1, 2, 100]
>>> a.append(["google","facebook"])
>>> a
[1, 2, 100, ['google', 'facebook']]
>>>


extend()的用法:

>>> help(list.extend)
Help on method_descriptor:

extend(...)
L.extend(iterable) -- extend list by appending elements from the iterable

>>>


说明extend(iterable)中的iterable必须是可迭代的,这点重要。

举例如下:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
>>> a.extend("python")
#注意,此处字符串"python"是不可迭代的,但会将字符串中每个字符一个一个地取出,并输出。
>>> a
[1, 2, 3, 4, 5, 6, 'p', 'y', 't', 'h', 'o', 'n']
>>> a.extend(5)   # 5 不是可迭代的,所以会报如下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>


可迭代的判断方法:

>>> b = [1,2]
>>> hasattr(b,'__iter__')
True
>>> hasattr("python",'__iter__')
False
>>> hasattr(5,'__iter__')
False
>>>


append()和extend()的重要区别:

>>> a= [1,2]
>>> a.append([4,5])   #append的用法
>>> a
[1, 2, [4, 5]]
>>>
>>>
>>> a = [1,2]
>>> a.extend([4,5])   #extend的用法
>>> a
[1, 2, 4, 5]
>>>


其他函数,如Count()、Index()、Insert()、Pop()、Remove()、Reverse()、Sort()

Count()的用法:

>>> help(list.count)
Help on method_descriptor:

count(...)
L.count(value) -> integer -- return number of occurrences of value

>>>


count(value):表示value的值在列表中出现的次数,例如:

>>> a = [1,1,1,2,2,1]
>>> a.count(1)
4
>>> a.count(2)
2


Index()的用法:

>>> help(list.index)
Help on method_descriptor:

index(...)
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.

>>>


index(value)返回的是value所在的第一个索引值,例如:

>>> a
[1, 1, 1, 2, 2, 1]
>>> a.index(1)
0
>>> a.index(2)
3
>>>


Insert()的用法:

>>> help(list.insert)
Help on method_descriptor:

insert(...)
L.insert(index, object) -- insert object before index

>>>


举例如下:

>>> a = ["python","web"]
>>> a.insert(1,"Xiaoxu")
>>> a
['python', 'Xiaoxu', 'web']
>>> a.insert(0,20161111)
>>> a
[20161111, 'python', 'Xiaoxu', 'web']
>>>


Pop()的用法:

>>> help(list.pop)
Help on method_descriptor:

pop(...)
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.

>>>


举例如下:

>>> a = [20161111, 'python', 'Xiaoxu', 'web']
>>> a.pop(2)
'Xiaoxu'
>>>


Remove()的用法:

>>> help(list.remove)
Help on method_descriptor:

remove(...)
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.

>>>


若有多个相同的值,remove()只能删除第一个值

举例如下:

>>> a = ["taishan","taishan","huangshan"]
>>> a.remove("taishan")
>>> a
['taishan', 'huangshan']
>>>


Reverse()的用法:

>>> help(list.reverse)
Help on method_descriptor:

reverse(...)
L.reverse() -- reverse *IN PLACE*

>>>


举例如下:

>>> a = [1,2,3,4]
>>> a.reverse()
>>> a
[4, 3, 2, 1]
>>>


Sort()的用法:

>>> help(list.sort)
Help on method_descriptor:

sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1

>>>


举例如下:

>>> a = [5,3,9,2]
>>> a.sort()              #默认的是升序排列
>>> a
[2, 3, 5, 9]
>>>
>>> b = [5,3,9,2]
>>> b.sort(reverse=True)  #此处设置降序排列
>>> b
[9, 5, 3, 2]
>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 列表