Fork me on GitHub

Python基础—序列(sequence)


环境及版本

1
2
3
Windows 10 x64
Python 2.7
Pycharm 4.5.1

Python包含6中内建的序列——列表(list)、元组(tuple)、字符串、Unicode字符串、buffer对象和xrange对象

序列是Python中最基本的数据结构,其中可以包含一个或多个元素,也可以没有任何元素,当然也可以包含其他的序列或对象

序列的操作


索引

序列中的索引如同C、Java等语言中的数组下标,从0开始递增,元素的值可以通过下标访问,如同数组一样

  • 所有序列都可以通过这种方式进行索引
1
2
3
4
test_list = [1,2,3,4,5,6,7,8]
print test_list[0]

1
  • 索引为负数时表示从起始端为右边,最后一个元素的位置是-1
1
2
3
print test_list[-1]

8

分片

  • 使用分片,可以访问某个范围内的元素
  • 分片通过冒号:实现
  • 第一个索引表示起始位置(包括),第二个索引表示终止位置(不包括)
1
2
3
4
5
print test_list[0:2]
print test_list[1:-1]

[1, 2]
[2, 3, 4, 5, 6, 7]
  • 起始位置为空,表示从结束位置到起始位置的所有元素
  • 终止位置为空,表示从起始位置到终止位置的所有元素
  • 如果要复制整个序列,则起始位置和终止位置都为空
1
2
3
4
5
6
7
print test_list[0:]
print test_list[:-1]
print test_list[:]

[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7]//由于终止位置不包含,所以没有最后一个元素
[1, 2, 3, 4, 5, 6, 7, 8]

步长(step lengh)

  • 步长的设定通常是隐式的,默认为1
  • 即按照步长的间隔分割序列
  • 步长不能为0,但可以为负数,边说分片从右到左,间隔步长提取元素
1
2
3
4
5
print test_list[0::2]
print test_list[7:2:-1]

[1, 3, 5, 7]
[8, 7, 6, 5, 4]

序列相加(+)

  • 两种类型相同的序列才能进行连接操作(相加)
1
2
3
4
test_list_1 = ['a','b','c','d','e','f']
print test_list + test_list_1

[1, 2, 3, 4, 5, 6, 7, 8, 'a', 'b', 'c', 'd', 'e', 'f']

序列乘法(*)

  • 用数字x乘以序列,则会生成一个原序列重复x次的新序列
1
2
3
4
none_list = [None]
print none_list * 5

[None, None, None, None, None]

成员资格(in)

  • in运算符会检查一个对象是否为某个序列的成员
  • 返回值:True or False
1
2
3
4
5
print 1 in test_list
print 'A' in test_list_1

True
False

长度(len)、最大值(max)、最小值(max)

  • len函数返回序列中包含元素的个数
  • max函数返回序列中最大的元素
  • min函数返回序列中最小的元素
1
2
3
4
5
6
7
print len(test_list)
print max(test_list_1)
print min(test_list_1)

8
f
a

参考:Python基础教程(第2版·修订版)


转载请注明出处


Thank you for your support.