4.4 列表
4.4.1 切片
切片用法和range()
差不多,都需要指定元素的索引,但切片中间使用的是:
。
abc=['a','b','c','d']
print(abc[0:3])
#输出
['a', 'b', 'c']
提取列表的第二和第三个元素。
print(abc[1:3])
#输出
['b', 'c']
不设定起始索引,程序将默认起始索引为0
。
print(abc[:3])
#输出
['a', 'b', 'c']
不设定终止索引值,程序会输出最后一个元素。
print(abc[2:])
#输出
['c', 'd']
是用负数作为索引值,将会输出与列表末尾具有相应距离的元素。
print(abc[-1:])
#输出
['d']
设置切片的第三个值作为步长输出。
print(abc[0:4:2])
#输出
['a', 'c']
4.4.2 遍历切片
在for
循环中将切片代替range()
,指定范围。
abc=['a','b','c','d']
for a in abc[:3]:
print(a.title())
#输出
A
B
C
4.4.3 复制列表
将一个完整的列表切片赋给一个新变量,可以完成列表复制的操作。
abc=['a','b','c','d']
ab=abc[:]
print(ab)
#输出
['a', 'b', 'c', 'd']
此时,两个变量指向不同的列表。
ab.append('ab')
abc.append('abc')
print(ab,abc)
#输出
['a', 'b', 'c', 'd', 'ab'] ['a', 'b', 'c', 'd', 'abc']
去掉切片后,只是简单的将两个变量相关联,这两个变量都指向同一个列表。因此在分别对两个变量执行不同的附加后得出的列表相同。
abc=['a','b','c','d']
ab=abc
print(ab)
ab.append('ab')
abc.append('abc')
print(ab,abc)
#输出
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', 'ab', 'abc'] ['a', 'b', 'c', 'd', 'ab', 'abc']
4-10
print(abc[0:3]
#输出
['a', 'b', 'c']
print(abc[1:4])
#输出
['b', 'c', 'd']
print(abc[-3:])
#输出
['d', 'ab', 'abc']
4-11
abc=['a','b','c','d']
ac=abc[:]
abc.append('e')
ac.append('ac')
print(abc,ac)
for a in abc[:]:
print(a)
for c in ac[:]:
print('\t',c)
#输出
['a', 'b', 'c', 'd', 'e'] ['a', 'b', 'c', 'd', 'ac']
a
b
c
d
e
a
b
c
d
ac
4-12
number=['1','2','3','4']
for shu in number[1:3]:
print(shu)
for shu in number[0::3]:
print(shu)
#输出
2
3
1
4