(1)共同的操作
1.x in s:True if an item of s is equal to x, else False。
2.x not in s:False if an item of s is equal to x, else True。
>>> 's' in 'likes'
True
>>> 'Java' in ['Python', 'PHP', 'Java']
True
>>> 'Java' not in ['Python', 'PHP', 'Java']
False
3.s + t:将序列s和t连接起来。
>>> 'I like ' + 'you'
'I like you'
>>> ['Python'] + ('PHP')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list
>>> ['Python'] + ['PHP']
['Python', 'PHP']
注意:参数s和t的类型必须一致。
4.s * n or n * s:equivalent to adding s to itself n times。
参数n:int 类型。当n<=0时,返回空序列;
参数s:序列。
>>> ['Python'] * 3
['Python', 'Python', 'Python']
>>> 4 * ['Python']
['Python', 'Python', 'Python', 'Python']
>>> 'xy' *2
'xyxy'
>>> 'AX' * 0
''
>>> 'AX' * -3
''
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]
5.s[i]:取下标为i的序列的值。下标从0开始。
注意:下标可以取负值,-1代表最后一个元素,依次类推。
>>> s = 'AEIOU'
>>> s[0]
'A'
>>> s[-1]
'U'
>>> s[-5]
'A'
>>> s[-6]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
6.s[i:j]:取下标从i到j的元素组成的序列。包含s[i],不包含s[j]。
7.s[i:j:k]:从下标为i到j的元素中每隔k个取一个元素组成序列。第一个获取的元素为s[i]。
注意:i默认为0。j默认为序列的长度len(s)。如果i>=j,则返回空序列。当参数i,j,k都为空时,相当于复制一个序列。
>>> s = 'AEIOU'
>>> s[0:2]
'AE'
>>> s[0:-1]
'AEIO'
>>> s[-3:-1]
'IO'
>>> s[0:4:2]
'AI'
>>> s[3:1]
''
>>> s[::]
'AEIOU'
8.len(s):返回序列的长度。
>>> s = 'AEIOU'
>>> len(s)
5
>>> l = ['Java', 'PHP', 'Perl']
>>> len(l)
3
9.min(s):返回序列中的最小值。
10.max(s):返回序列中的最大值。
>>> s = 'AEIOU'
>>> l = ['Java', 'PHP', 'Perl']
>>> min(s)
'A'
>>> max(s)
'U'
>>> min(l)
'Java'
>>> max(l)
'Perl'
11.s.index(x[, i[, j]]):返回x在指定范围内第一次出现的下标值。
>>> s = 'AEIOU'
>>> l = ['Java', 'PHP', 'Perl']
>>> index('A')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'index' is not defined
>>> s.index('A')
0
>>> s.index('Perl')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> l.index('Perlxx')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'Perlxx' is not in list
>>> s1 = 'xxabcdxyzxg'
>>> s1.index('x', 2, 9)
6
>>> s1.index('x', 2, 11)
6
12.s.count(x):返回对象x在序列s中的个数。
>>> s1 = 'xxabcdxyzxg'
>>> s1.index('x', 2, 9)
6
>>> s1.index('x', 2, 11)
6
>>> s1.count('x')
4
>>> s1.count('X')
0
(2)可变序列的操作
1.s[i] = x:将可变序列下标为i的元素换成x对象。
>>> s = 'AEIOU'
>>> s[0] = 'W'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> l = ['Java', 'PHP']
>>> l[0] = 'Android'
>>> l
['Android', 'PHP']
2.s[i:j] = t:将序列s从i到j的下标值替换为可迭代对象t的值。
>>> s = 'AEIOU'
>>>> l = ['Java', 'PHP']
>>> s[0:3] = 'xxx'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> l[0:3] = 'xxx'
>>> l
['x', 'x', 'x']
>>> l[0:5] = 'm'
>>> l
['m']
>>> l[0:5] = 'xxx'
>>> l
['x', 'x', 'x']
3.del s[i:j]:将序列s的切片[i:j]的内容删除。相当于s[i:j] = []。
>>> l = ['a', 'e', 'i', 'o', 'u']
>>> del l[0:2]
>>> l
['i', 'o', 'u']
4.s[i:j:k] = t:用可迭代对象t中的内容替换切片s[i:j:k]中的内容。
>>> l = ['a', 'e', 'i', 'o', 'u']
>>> l[0:2] = 'W'
>>> l
['W', 'i', 'o', 'u']
5.del s[i:j:k]:删除切片s[i:j:k]中的内容。
>>> l = ['a', 'e', 'i', 'o', 'u']
>>> del l[0:5:2]
>>> l
['e', 'o']
6.s.append(x):将对象x添加到序列s的末尾。相当于s[len(s):len(s)] = [x]。
>>> l = ['a', 'e', 'i', 'o', 'u']
>>> l.append('X')
>>> l
['a', 'e', 'i', 'o', 'u', 'X']
>>> l[len(l):len(l)] = 'L'
>>> l
['a', 'e', 'i', 'o', 'u', 'L']
7.s.clear():删除序列s中的所有元素。相当于del s[:]。
>>> l = ['a', 'e', 'i', 'o', 'u']
>>> l.clear()
>>> l
[]
8.s.copy():复制序列s。相当于s[:]。
>>> l = ['a', 'e', 'i', 'o', 'u']
>>> l.copy()
['a', 'e', 'i', 'o', 'u']
9.s.extend(t) or s += t:将可迭代对象t中的元素添加到序列s中。相当于s[len(s):len(s)] = t。
>>> l = ['x', 9]
>>> l.extend('Java')
>>> l
['x', 9, 'J', 'a', 'v', 'a']
>>> l = ['x', 9]
>>> l += ['K11', ]
>>> l
['x', 9, 'K11']
10.s *= n:updates s with its contents repeated n times。
>>> l = ['x', 9]
>>> l *= 2
>>> l
['x', 9, 'x', 9]
11.s.insert(i, x):将对象x插入到序列s的下标为i的位置。相当于s[i:i] = [x]。
>>> l = ['x', 9]
>>> l.insert(0, 'Java')
>>> l
['Java', 'x', 9]
>>> l[1:1] = 'PHP'
>>> l
['Java', 'P', 'H', 'P', 'x', 9]
12.s.pop([i]):返回并删除序列s的下标为i的元素。
>>> l = ['x', 9]
>>> l.pop(0)
'x'
>>> l
[9]
13.s.remove(x):删除序列s中的第一个值等于x的元素。
>>> l = ['x', 9, 'x', 'Java', 'x']
>>> l.remove('x')
>>> l
[9, 'x', 'Java', 'x']
14.s.reverse():将序列s的反序。
>>> l = ['Java', 'PHP', 'Android']
>>> l
['Java', 'PHP', 'Android']
>>> l.reverse()
>>> l
['Android', 'PHP', 'Java']
(2)range类型
range类型为一组由数字组成的可变的序列,通常用于确定次数的for循环中。
1.形式
- class range(stop)
- class range(start, stop[, step])
2.参数
- start:指定起始数字,默认为0;
- stop:结束位置,不包含该位置;
- step:取值的间隔,默认1。如果step=0,则抛出ValueError异常。
>>> r = range(5)
>>> type(r)
<class 'range'>
>>> list(r)
[0, 1, 2, 3, 4]
>>> r1 = range(0, 5, 2)
>>> list(r1)
[0, 2, 4]
(3)列表-list类型
(1)构造list的方式
- []:代表一个空列表;
- [a], [a, b, c]:含有多个元素的列表,元素之间用逗号隔开;
- [x for x in iterable]:使用列表生成式;
- list() or list(iterable):根据可迭代对象生成列表。
>>> list('abc')
['a', 'b', 'c']
>>> list((1, 3, 5))
[1, 3, 5]
>>> list([])
[]
(2)list的方法
1.L.sort(key=None, reverse=False):排序。
>>> l = [7, 5, 2, 8, 0, 1]
>>> l.sort()
>>> l
[0, 1, 2, 5, 7, 8]
>>> l.sort(reverse=True)
>>> l
[8, 7, 5, 2, 1, 0]
>>> def f(a):
... return -a
...
>>> l.sort(key=f)
>>> l
[8, 7, 5, 2, 1, 0]
2.L.reverse():将列表元素的顺序颠倒。
>>> l
[8, 7, 5, 2, 1, 0]
>>> l.reverse()
>>> l
[0, 1, 2, 5, 7, 8]
3.L.remove(value)
删除列表L中的第一个值为value的元素。如果value不是L的元素,则抛出ValueError异常。
>>> l = ['Java', 'PHP', 'Js']
>>> l.remove('Python')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> l.remove('Js')
>>> l
['Java', 'PHP']
4. L.pop([index])
删除列表L的下标为index的元素。index默认为最后一个。当L为空或下标越界时,抛出IndexError异常。
>>> l = ['Java']
>>> l = ['Java', 'PHP', 'Js', 'Perl']
>>> l.pop()
'Perl'
>>> l
['Java', 'PHP', 'Js']
>>> l.pop(0)
'Java'
>>> l
['PHP', 'Js']
5.L.insert(index, obj)
将对象obj插入索引为index的位置。
>>> l
['PHP', 'Js']
>>> l.insert(0, 'Android')
>>> l
['Android', 'PHP', 'Js']
>>> l.insert(2, 'C++')
>>> l
['Android', 'PHP', 'C++', 'Js']
>>> l.insert(5, 'C#')
>>> l
['Android', 'PHP', 'C++', 'Js', 'C#']
6.L.index(value, [start, [stop]])
返回value值在[start:stop]中第一次出现的位置的索引。
>>> l = ['A', 1, 2, 3, 'A', 9, 'A', 'A', 6, 7]
>>> l.index('A')
0
>>> l.index('A', 2, 8)
4
7.L.extend(iterable)
使用可迭代对象iterable中的元素扩充列表L。
>>> l = ['PHP', 'JS']
>>> l.extend(('Java', 'Android'))
>>> l
['PHP', 'JS', 'Java', 'Android']
8.L.count(value)
返回值value在L中出现的次数。
>>> l = ['PHP', 'JS']
>>> l = ['PHP', 'JS', 'JS', 'JS', 'PHP']
>>> l.count('PHP')
2
>>> l.count('JS')
3
9.L.copy()
复制L。
>>> l = ['PHP', 'JS']
>>> l.copy()
['PHP', 'JS']
10.L.clear()
清空列表L。
>>> l
['PHP', 'JS']
>>> l.clear()
>>> l
[]
11.L.append(object)
将对象object添加到L的末尾。
>>> l = ['PHP', 'JS']
>>> l.append('Java')
>>> l
['PHP', 'JS', 'Java']
(4)元组-tuple类型
(1)构造tuple的方式
- () 或 tuple():创建一个空元组;
- a, 或 (a,):创建只有一个元素的元组;
- a, b, c 或 (a, b, c):创建多个元素的元组。元素之间用逗号隔开;
- tuple(iterable):从可迭代对象中创建一个元组。
>>> t = 'Java',
>>> type(t)
<class 'tuple'>
>>> t = tuple(['PHP', 'PHP', 'Java'])
>>> list(t)
['PHP', 'PHP', 'Java']
(2)tuple的方法
1. T.count(value)
返回值value在元组T中出现的次数。
>>> t = ('JS', 'PHP', 'JS')
>>> t.count('JS')
2
>>> t.count('Java')
0
2.T.index(value, [start, [stop]])
返回在切片T[start:stop]中值value第一次出现的索引。
>>> t = ('JS', 'PHP', 'JS')
>>> t[0: 2]
('JS', 'PHP')
>>> t.index('PHP', 0, 2)
1
本文深入解析Python中的序列操作,包括字符串、列表、元组和range类型的常见操作与方法,如索引、切片、连接、重复等,并详细介绍列表和元组的特定方法,如排序、反转、插入和删除。

被折叠的 条评论
为什么被折叠?



