标签:python
列表list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
一、定义列表
>>> list1=[‘a‘,‘b‘,‘c‘,1,2,3] >>> list2=[‘a‘,‘b‘,‘c‘,[1,2,3]]
从上面两个列表,可以总结出列表的特点如下:
1.用中括号括起来,元素之间用逗号分隔。
2.字符串需要使用单引号,整数不用。
3.list里面的元素的数据类型也可以不同。
4.list元素也可以是另一个list。
二、列表的基本操作
#查看列表元素个数
>>> len(list1) 6
#用索引来访问列表中每一个位置的元素,索引是从0开始的
>>> list1[0] ‘a‘ >>> list1[1] ‘b‘ >>> list1[-1] 3 >>> list2[-1][0] 1
注意:最后一个元素的索引为-1,以此类推,倒数第二个的为-2……;索引是不能超出范围的否则会报一个IndexError错误。
#追加一个元素
>>> list1.append(4) >>> list1 [‘a‘, ‘b‘, ‘c‘, 1, 2, 3, 4]
#删除指定内容的元素
>>> list1.remove(‘a‘) >>> list1 [‘b‘, ‘c‘, 1, 2, 3, 4]
#根据索引删除元素,如果不指定索引,默认从最后一个开始删除。
>>> list1.pop(0) ‘b‘ >>> list1 [‘c‘, 1, 2, 3, 4]
#统计列表中相同元素的个数
>>> list1.count(1) 1
#统计指定元素的索引号
>>> list1.index(‘c‘) 0
#在指定索引的元素之后添加一个元素
>>> list1.insert(1,‘d‘) >>> list1 [‘c‘, ‘d‘, 1, 2, 3, 4]
#倒序列表排序
>>> list1.insert(1,‘d‘) >>> list1 [‘c‘, ‘d‘, 1, 2, 3, 4]
#正向排序元素
>>> list1.sort() >>> list1 [1, 2, 3, 4, ‘c‘, ‘d‘]
#把一个列表扩展到另一个列表中
>>> list1.extend(list2) >>> list1 [1, 2, 3, 4, ‘c‘, ‘d‘, ‘a‘, ‘b‘, ‘c‘, [1, 2, 3]]
#列表连接
>>> list1+list2 [1, 2, 3, 4, ‘c‘, ‘d‘, ‘a‘, ‘b‘, ‘c‘, [1, 2, 3], ‘a‘, ‘b‘, ‘c‘, [1, 2, 3]]
注意:列表中的元素没有发生变化
#清空列表
>>> list1=[] >>> len(list1) 0
总结:
列表的索引号是从0开始的;
可以使用dir()查看列表的使用方法,括号中输入列表的名称;
使用help()查看操作的帮助,括号中输入”列表名.操作”,例如:
>>> help(list1.insert) Help on built-in function insert: insert(...) L.insert(index, object) -- insert object before index
补充:
有时候我们需要将一个列表重新排序的结果定义给一个新的列表,而且不改变原列表,就用到了sorted()和reversed()
sorted()是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数,都将返回一个以列表为容器的返回值,如果是字典将返回键的列表,例如:
>>> a=[4,3,2,1] >>> b=sorted(a) #实现正向排序后定义给另一个列表 >>> b [1, 2, 3, 4] >>> a#列表a并没有发生变化 [4, 3, 2, 1] >>> c=sorted(b,reverse=True) #实现倒序排列后定义给另一个列表 >>> c [4, 3, 2, 1] >>> a [4, 3, 2, 1]
reversed()也是python的一个内置函数,作用是返回序列的反向访问的迭代器,参数可以是列表,元组,字符串,不改变原对象,例如:
>>> a=[1,2,3,4] >>> b=reversed(a) >>> b <listreverseiterator object at 0x0000000000602B00> #b是一个迭代器 >>> c=list(reversed(a)) #实现反转一个列表的结果定义给另一个列表 >>> c [4, 3, 2, 1] >>> a [1, 2, 3, 4]
三、切片
可以使用分片操作来访问一定范围内的元素。分片通过冒号隔开的两个索引来实现:
分片对于提取序列的一部分很有用。切片的原则是”取头不取尾”,即第一个索引是要提取的第一个元素的编号,而最后的索引则是分片之后剩余部分的第一个元素的编号。
例如:
>>> list2 [‘a‘, ‘b‘, ‘c‘, [1, 2, 3]] >>> list2[1:3] [‘b‘, ‘c‘]
如果不指定第一个索引,默认从头开始切取;如果不指定第二个索引,默认切到最后,例如:
>>> list2[:3] [‘a‘, ‘b‘, ‘c‘] >>> list2[2:] [‘c‘, [1, 2, 3]]
#步长切片
进行分片的时候,分片的开始和结束需要进行指定,按照步长逐个遍历序列的元素,然后返回开始和结束点之间的所有元素。例如:
>>> list3=[0,1,2,3,4,5,6,7,8,9] >>> list3[::2] [0, 2, 4, 6, 8] >>> list3[1::2] [1, 3, 5, 7, 9]
练习
1.创建一个空列表
>>> lst1=[]
2.添加10个列表元素,包含字符串,数字
>>> lst1=[0,1,2,3,4,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
3.从第5个索引号起插入5个元素
>>> lst1.insert(5,5)
>>> lst1.insert(5,6)
>>> lst1.insert(5,7)
>>> lst1.insert(5,8)
>>> lst1.insert(5,9)
4.分别用切片方法取出前5个,和后5个
>>> lst1[:5]
[0, 1, 2, 3, 4]
>>> lst1[-5:]
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]
5.分别取出奇数项,和偶数项
>>> lst1.sort()
>>> lst1[::2]
[0, 2, 4, 6, 8, ‘a‘, ‘c‘, ‘e‘]
>>> lst1[1::2]
[1, 3, 5, 7, 9, ‘b‘, ‘d‘]
6.print出列表元素个数
>>> len(lst1)
15
7.删除某个元素
>>> lst1.remove(‘a‘)
8.删除列表最后一个元素
>>> lst1.pop(-1)
‘e‘
9.删除列表第5个元素
>>> lst1.pop(4)
4
本文出自 “网络技术” 博客,请务必保留此出处http://fengjicheng.blog.51cto.com/11891287/1927616
标签:python
原文地址:http://fengjicheng.blog.51cto.com/11891287/1927616