码迷,mamicode.com
首页 > 编程语言 > 详细

python笔记--列表

时间:2017-05-19 22:20:18      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:python

列表list

Python内置的一种数据类型是列表:listlist是一种有序的集合,可以随时添加和删除其中的元素。

一、定义列表

>>> 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笔记--列表

标签:python

原文地址:http://fengjicheng.blog.51cto.com/11891287/1927616

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!