python3中通用的序列操作

python3中包含有4种内建的序列:列表、元组、字符串、unicode字符串(buffer对象;xrange对象在2中存在,3中好像没有了)

通用的序列操作
所有的序列类型都可以进行的操作:索引、切片、+拼接、*复制多次、成员资格检查in/not in序列长度、查找最大元素、查找最小元素(内建函数的功劳)

索引


序列后紧跟一个方括号,括号中的数字表示元素索引号;正向索引范围为0--n-1,反向索引范围为-n -- -1

>>> a="abcdefg"
>>> a[0]
'a'
>>> a[-7]
'a'
>>> a[6]
'g'
>>> a[-1]
'g'

 切片


操作跟索引类似,区别是方括号中的索引必须包含至少一个冒号,冒号左边表示索引的开始位置,右边表示结束索引的位置。若开始位置参数缺省则表示从序列首开始索引;若结束位置参数缺省则表示一直索引到序列尾部;若只有一个冒号则表示全部索引。

>>> a[1:3]
'bc'
>>> a[:3]
'abc'
>>> a[1:]
'bcdefg'
>>> a[:]
'abcdefg'


第二个冒号后跟步长,这是灵活定义切片的一种方式

>>> a[-1::-1]
'gfedcba'
>>> a[1:7:2]
'bdf'
>>> a[-1:-7:-1]
'gfedcb'


从负步长切片的例子中可以看出,无论是他跟正步长一样,都是包含开始索引位置上的元素而不包含结束索引位置上的元素。

+拼接


同类型的序列可以通过加号拼接得到加长的新序列,可以是两个变量引用之间拼接,也允许变量引用和同类型序列之间的拼接,但是不同类型的序列之间就不允许这种操作。

>>> b="1234567"
>>> a+b
'abcdefg1234567'
>>> a+"fafas"
'abcdefgfafas'
>>> a+[1,2,3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not list

*多次复制


用序列乘以一个整数x会得到一个新的序列,新序列中原序列会被重复x次。这个性质可以用来快速赋值和初始化

>>> a*4
'abcdefgabcdefgabcdefgabcdefg'


空列表可以用两个中括号表示[[]]。

成员资格in/not in


查找一个元素是否在序列中,可以用in/not in 来检查,返回的结果是布尔值
 

>>> 'a' in a
True
>>> 'b' not in a
False

长度、最小值、最大值


这个可以通过当前python版本的内建函数len,min,max实现,大小比较是根据字符的ASCII值比较的

>>> len(a)
7
>>> max(a)
'g'
>>> min(a)
'a'
>>> min("aD12")
'1'
>>> min("aA")
'A'
>>> ord("a")
97


 

猜你喜欢

转载自blog.csdn.net/Muyan_Donny/article/details/81676259