/ 2018-07-03
一. 列表的简要介绍
列表是Python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:
li = ["alex",123,True,(1,2,3,"wusir"),[1,2,3,"小明",],{"name":"alex"}]
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位Python的限制是 536870912 个元素,64位Python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。
二. 定义列表
>>> li = ["Alex","wuSir","egon"] >>> print(li) ['Alex', 'wuSir', 'egon']
三. 列表的索引于切片
索引
>>> li = ["Alex","wuSir","egon"] >>> print(li[0]) Alex >>> print(li[1]) wuSir >>> print(li[2]) egon
切片
>>> li = ["Alex","wuSir","egon","飞机","大炮","鞭炮"] >>> print(li[0:3]) #打印前3个索引的值 ['Alex', 'wuSir', 'egon'] >>> print(li[2:5]) #打印第2个至第5个的索引的值,索引默认从0开始 ['egon', '飞机', '大炮'] >>> print(li[0:5:2]) #打印第2个至第5个的索引的值,每隔2个取一次值 ['Alex', 'egon', '大炮'] >>> print(li[-2::-2]) #倒序从倒数第二个向前取值,每隔2个取一次值 ['大炮', 'egon', 'Alex'] >>> print(li[5:0:-2]) #倒序从索引5向前取值,每隔2个取一次值 ['鞭炮', '飞机', 'wuSir']
四. 列表的增删改查
1. 增加
方式一:append
>>> li = ["Alex","wuSir","egon"] >>> li.append("laoyao") #在末尾追加"老妖" >>> print(li) ['Alex', 'wuSir', 'egon', 'laoyao'] >>> >>> li.append(["李老师","老男孩"]) #在末尾追加一个列表 >>> print(li) ['Alex', 'wuSir', 'egon', 'laoyao', ['李老师', '老男孩']]
方式二:insert
insert(index, obj)插入元素,index为要插入的索引位置,obj为插入的值。
>>> li = ["Alex","wuSir","egon"] >>> li.insert(0,"李老师") #在0索引处添加"李老师",其余元素向后移动 >>> print(li) ['李老师', 'Alex', 'wuSir', 'egon']
方式三:extend
extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)即迭代追加。
>>> li = ["Alex","wuSir","egon"] >>> li.extend(["老男孩","教育"]) #两个列表合并 >>> print(li) ['Alex', 'wuSir', 'egon', '老男孩', '教育']
2. 删除
方式一:pop
pop(index) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
>>> li = ["Alex","wuSir","egon"] >>> obj = li.pop() #默认删除最后一个,并返回 >>> print(obj) egon >>> print(li) ['Alex', 'wuSir'] >>> retval = li.pop(1) #按索引删除 >>> print(retval) wuSir >>> print(li) ['Alex']
方式二:remove
remove(obj) 移除列表中某个值的第一个匹配项,无返回值。
>>> li = ["Alex","wuSir","egon"] >>> obj =li.remove("wuSir") #删除元素,无返回值 >>> print(obj) None >>> print(li) ['Alex', 'egon']
方式三:del
(1)功能一:删除列表 >>> li = ["Alex","wuSir","egon"] >>> del li #删除整个列表 >>> print(li) #再次打印会报错 Traceback (most recent call last): File "", line 1, in NameError: name 'li' is not defined (2)功能二:可以按照索引或切片删除元素 >>> li = ["Alex","wuSir","egon","老男孩教育"] >>> del li[3] #删除索引为3的元素 >>> print(li) ['Alex', 'wuSir', 'egon'] >>> del li[0:2] #按照切片删除元素 >>> print(li) ['egon'] (3)功能三:按照步长删除元素 >>> li = ["Alex","wuSir","egon","老男孩教育"] >>> del li[0::2] #删除偶数位的元素 >>> print(li) ['wuSir', '老男孩教育']
方式四:clear
clear() 清空列表,无返回值。
>>> li = ["Alex","wuSir","egon","老男孩教育"] >>> li.clear() >>> print(li) []
3. 修改
(1)按照索引去改 >>> li = ['alex','taibai','wusir','教育'] >>> li[1] = "老男孩" #将"taibai"修改为"老男孩" >>> print(li) ['alex', '老男孩', 'wusir', '教育'] (2)按照切片去改 >>> li = ['alex','taibai','wusir','教育'] >>> li[1:3] = ["mimi","大人"] #按照索引切片将'taibai','wusir'修改 >>> print(li) ['alex', 'mimi', '大人', '教育']
4. 查找
(1)按索引或切片查找 li = ["Alex","wuSir","egon","老师"] print(li[1]) #按照索引查找 print(li[1:2]) #按照切片查找 (2)for循环查找 >>> li = ["Alex","wuSir","egon","老师"] >>> for i in li: #循环打印结果 ... print(i) Alex wuSir egon 老师 (3) index(obj) 从列表中找出某个值第一个匹配项的索引位置 >>> li = ["Alex","wuSir","egon","老师"] >>> print(li.index("wuSir")) #找"wuSir"的索引位置,找到第一个返回 1
五. 列表的其他方法
1. sort()
sort() 对列表中元素进行排序。
>>> li = [1,6,2,3,9,3,1] >>> li.sort() #默认从小到大排序 >>> print(li) [1, 1, 2, 3, 3, 6, 9] >>> li.sort(reverse=True) #加参数reverse=True倒序排列 >>> print(li) [9, 6, 3, 3, 2, 1, 1]
2. reverse()
reverse() 反向列表中元素,即倒序。
>>> li = ["Alex","wuSir","egon","老师"] >>> li.reverse() #反序排列 >>> print(li) ['老师', 'egon', 'wuSir', 'Alex']
3. count()
count(obj) 统计某个元素在列表中出现的次数。
>>> li = ["Alex","wuSir","egon","老师","wuSir","wuSir"] >>> print(li.count("wuSir")) #计算"wuSir"在列表中出现的次数 3
六. 列表与字符串的相互转换
>>> li = ["Alex","wuSir","egon"] >>> astr = "_".join(li) #讲列表的元素通过_拼接为字符串 >>> print(astr) Alex_wuSir_egon >>> ali = astr.split("_") #讲字符串通过_分割,分割的每项为列表的一个元素 >>> print(ali) ['Alex', 'wuSir', 'egon']
(10)