1 列表
python内置的一种数据类型是列表:list。LIST是一种 有序的集合,可以随时添加和删除其中的元素,列表里面可以是数字或字符,或混合等。比如,列出班里所有同学的名字,可以用一个LIST表示
In [87]: a=["zhangs","lis","wangw","dada"] #定义一个列表
In [88]: len(a) #获取列表长度,元素的个数
Out[88]: 4
In [89]: a[0] #取第一个元素
Out[89]: 'zhangs'
In [92]: a[-1] #取倒数第一个元素
Out[92]: 'dada'
In [90]: a[4] #超出长度时报错 IndexError: list index out of range
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-90-ed40d1f49c42> in <module>
----> 1 a[4]
IndexError: list index out of range
1. 列表的相关操作
添加元素(增append,extend,insert)
Ø append在列表最后追加
In [97]: a
Out[97]: ['zhangs', 'lis', 'wangw', 'dada']
In [98]: a.append('lufei')
In [99]: a
Out[99]: ['zhangs', 'lis', 'wangw', 'dada', 'lufei']
Ø extend两个列表的合并
In [100]: b
Out[100]: ['a', 'b', 1, 2, 3]
In [101]: a.extend(b)
In [102]: a
Out[102]: ['zhangs', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
Ø insert 在任意位置插入
In [102]: a
Out[102]: ['zhangs', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
In [103]: a.insert(0,"wuxi")
In [104]: a
Out[104]: ['wuxi', 'zhangs', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
In [105]: a.insert(2,"haor")
In [106]: a
Out[106]: ['wuxi', 'zhangs', 'haor', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
修改元素
修改元素的时候,要通过下标来确定要修改的是哪个元素
In [107]: a[2]='haha'
In [108]: a
Out[108]: ['wuxi', 'zhangs', 'haha', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
查找元素(查in,not in,index,count)
in,not in:in查找某个元素是否在列表里面,如果存在那么结果为True,否则为false
not in 与in相反,如果不存在那第返回true,否则false
In [120]: "wangw" in a
Out[120]: True
index返回某个元素的下标位,count统计元素在列表出现几次
In [117]: a.append("zhangs")
In [119]: a.count("zhangs")
Out[119]: 2
In [128]: a=['a','b','c','a','b']
In [130]: a.index('a',1,3) #查找字符出现的下标,从下标1开始到下标3,查找不到报错
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-130-c884d924187e> in <module>
----> 1 a.index('a',1,3)
ValueError: 'a' is not in list
In [131]: a.index('a',1,4)
Out[131]: 3
In [132]: a.count("b")
Out[132]: 2
In [133]: a.count("d")
Out[133]: 0
删除元素(del不属于列表的函数,pop,remove)
Ø del 根据下标进行删除,也可以删除所有变量
Ø pop默认删除最后一个元素
Ø remove根据元素的值进行删除第一个
[例del]
In [135]: a
Out[135]: ['a', 'b', 'c', 'a', 'b']
In [136]: b
Out[136]: ['a', 'b', 1, 2, 3]
In [138]: del b #直接删除列表
In [139]: b
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-139-89e6c98d9288> in <module>
----> 1 b
NameError: name 'b' is not defined
In [140]: del a[2] #删除列表某个元素
In [141]: a
Out[141]: ['a', 'b', 'a', 'b']
[例pop]
In [143]: a.pop()
Out[143]: 'b'
In [144]: a
Out[144]: ['a', 'b', 'a']
[例remove]
In [148]: a=['a','b','c','d','e','f','g','g','f','e']
In [149]: a.remove('e')
In [150]: a
Out[150]: ['a', 'b', 'c', 'd', 'f', 'g', 'g', 'f', 'e']
排序sort,reverse
sort方法是将list按特定顺序重新排列,默认由小到大,参数reverse=true可改为倒序。reverse方法是将list逆置
[例reverse]
In [152]: a
Out[152]: [2, 54, 7, 1, 4, 3, 5]
In [153]: a.reverse()
In [154]: a
Out[154]: [5, 3, 4, 1, 7, 54, 2]
[例sort]
In [155]: a.sort()
In [156]: a
Out[156]: [1, 2, 3, 4, 5, 7, 54]
In [163]: a.sort(reverse=True)
In [164]: a
Out[164]: [54, 7, 5, 4, 3, 2, 1]