文章目录
1. 创建列表
最简单的,创建一个空列表:
newList = []
要向列表添加元素,需要使用append( )。交互模式键入:
>>> newList = []
>>> newList.append("LSM")
>>> print newList
['LSM']
再添加一个元素:
>>> newList.append("YMY")
>>> print newList
['LSM', 'YMY']
添加元素之前,一定要先创建一个列表(可以使空列表,也可以非空)
列表也可以存储任何类型的数据,包括数字,字符串,对象,甚至是其他列表:
myList = [2, 10, 23, 'Hello',my, another_list]
2. 获取元素
最简单的是用索引号从列表获取单个元素,当然注意索引号从0开始。
键入:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> print letters[0]
a
3. 列表“分片”
(1) 使用索引从列表一次获取多个元素,叫做列表分片。键入:
>>> print letters[1:4]
['b', 'c', 'd']
(2) 下边看这两者有什么不同:
>>> print letters[1]
b
>>> print letters[1:2]
['b']
第一种情况下,是取回一个元素;第二种取回的是包含这个元素的一个列表。如下
>>> print type(letters[1])
<type 'str'>
>>> print type(letters[1:2])
<type 'list'>
由此可见,对列表分片时会得到一个较小的列表,这是原列表中元素的一个副本,修改这个分片,原列表不会受到任何影响。
(3) 分片简写
想要分片包括列表的开始部分:
>>> print letters[:2]
['a', 'b']
想要得到列表的末尾:
>>> print letters[2:]
['c', 'd', 'e']
如果没有放任何数,只有冒号,得到的是整个列表:
>>> print letters[:]
['a', 'b', 'c', 'd', 'e']
和上边说的类似,letters[:] 会建立整个列表的副本。如果你想对列表做一些修改,但又想保持原列表不做任何改变,使用这种分片就会很方便。
4. 修改元素
可以使用索引修改元素:
>>> print letters
['a', 'b', 'c', 'd', 'e']\
>>> letters[2] = 'z'
>>> print letters
['a', 'b', 'z', 'd', 'e']
但是不能使用索引增加元素,如这样就是错误的:
>>> letters[5] = 'f'
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
letters[5] = 'f'
IndexError: list assignment index out of range
因为列表只有五项,故索引为0~4。
5. 添加元素
想列表增加元素共有3种办法:
- append( ) 向列表末尾增加一个元素。
- extend( ) 向列表末尾增加多个元素。
- insert( ) 在列表中的某个位置增加一个元素。
1. 增加到列表末尾:append( )
这个功能我们前边已经见过。它把一个元素增加到列表末尾:
>>> letters.append('f')
>>> print letters
['a', 'b', 'z', 'd', 'e', 'f']
2. 扩展列表:extend( )
extend( ) 在列表末尾增加多个元素:
>>> letters.extend(['g', 'h', 'i'])
>>> print letters
['a', 'b', 'z', 'd', 'e', 'f', 'g', 'h', 'i']
3. 插入一个元素:insert( )
insert( ) 会在列表中的某个位置增加一个元素。
>>> letters.insert(2,'c')
>>> print letters
['a', 'b', 'c', 'z', 'd', 'e', 'f', 'g', 'h', 'i']
将字母c增加到索引2的位置。索引2之前的字母位置不变,2之后的字母依次后移。
4. append( ) 和 extend( ) 的区别
分别让他们都增加3个元素:
首先用extend( ):
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> letters.extend(['f', 'g', 'h'])
>>> print letters
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
现在,再用append( )做同样的事:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> letters.append(['f', 'g', 'h'])
>>> print letters
['a', 'b', 'c', 'd', 'e', ['f', 'g', 'h']]
这是为什么呢?我们之前说append( )会向列表增加一个元素。它怎么会增加3个元素呢?其实他并没有增加3个元素,只不过刚好是一个包含3项的列表。正是这个原因,列表中多了一对中括号。
6. 删除元素
从列表中删除元素有三种方法:
- 用remove( )删除
- 用del删除
- 用pop( )删除
1.用 remove( ) 删除
remove( ) 会熊列表中删除你选择的元素,把它丢掉:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> letters.remove('c')
>>> print letters
['a', 'b', 'd', 'e']
不需要知道元素在列表中的具体位置,只要确定它在列表中即可。
假若你要删除的元素不在列表中,会出错:
>>> letter.remove('f')
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
letter.remove('f')
NameError: name 'letter' is not defined
2. 用 del 删除
del允许利用索引从列表中删除元素:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> del letters[3]
>>> print letters
['a', 'b', 'c', 'e']
3. 用 pop( ) 删除
pop( )从列表中取出最后一个元素交给你。你还可以给它指派一个名字:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> lastLetters = letters.pop()
>>> print letters
['a', 'b', 'c', 'd']
>>> print lastLetters
e
当然pop( ) 也可以使用索引指定元素:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> lastLetters = letters.pop(1)
>>> print letters
['a', 'c', 'd', 'e']
>>> print lastLetters
b
7. 搜索列表
列表中有多个元素时,怎么查找这些元素呢?两种处理:
- 查找元素是否在列表中.
- 查找元素在列表中的哪个位置(索引)。
in 关键字
要找出某个元素是否在列表中,可以使用in关键字,新建文件键入:
letters = ['a', 'b', 'c', 'd','e']
if 'a' in letters:
print "Found 'a' in letters"
else:
print "Didn't find 'a' in letters"
查找索引
为了找出元素位于列表中的什么位置,可以使用index( ) 方法:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> print letters.index('a')
0
>>> print letters.index('e')
4
>>>
再键入:
>>> letters = ['a', 'b', 'c', 'd', 'e']
>>> 'a' in letters
True
>>> 'f' in letters
False
>>>
‘a’ in letters 部分是布尔或逻辑表达式。如果a在这个列表,它会返回True,否则返回False。
8. 循环处理列表
直接看效果,新建文件键入
letters = ['a', 'b', 'c', 'd', 'e']
for letter in letters:
print letter