首页 > 代码库 > 【python核心编程】第六章 序列
【python核心编程】第六章 序列
1、操作符
(1)成员关系操作符:in 、not in
>>> string =‘abcdefg‘
>>> ‘a‘ in string
True
>>> ‘h‘ in string
False
>>> ‘h‘ not in string
True
*补充知识*:string模块
>>> import string
>>> string.uppercase #大写字母
‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘
>>> string.lowercase #小写字母
‘abcdefghijklmnopqrstuvwxyz‘
>>> string.letters #所有字母
‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘
>>> string.digits #数字
‘0123456789‘
(2)连接操作符:+
>>> char1 = ‘123456‘
>>> char2 = ‘7890123‘
>>> char1 + char2
‘1234567890123‘
>>> list1 = [‘a‘,‘b‘,‘c‘,‘d‘]
>>> list2 = [1,2,3,4]
>>> list1 + list2
[‘a‘, ‘b‘, ‘c‘, ‘d‘, 1, 2, 3, 4]
*补充知识*:join()
join()连接字符串
>>> s = ‘‘.join((‘Hello‘,‘ ‘,‘World‘))
>>> s
‘Hello World‘
>>> b.upper()
‘HELLO WORLD‘
*补充知识*:字符串相加的习惯用法
>>> a = ‘http://‘ ‘www‘ ‘.baidu‘ ‘.com‘
>>> a
‘http://www.baidu.com‘
(3)重复操作符:*
>>> a = ‘1‘
>>> a*10
‘1111111111‘
>>> list = [‘a‘,‘b‘,‘c‘]
>>> list*4
[‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘, ‘c‘]
>>> tuple = (1,2,3)
>>> tuple*4
(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
(4)切片操作符:[]、[:]、[::]
- 正向索引
- 反向索引
- 默认索引
正向索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
序列 | a | b | c | d | e | f | g |
反向索引 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
------正向索引------
如上,正向索引时,索引值从0开始,结束于总长度减1,[start,end]可以访问到包括start在内到end(不包含end)的所有字符,所以索引值有start <= x <end。
如果开始索引和结束索引没有指定,则分别以字符串的第一个和最后一个索引值为默认值。
>>> str = ‘abcdefg‘
整个序列
>>> str
‘abcdefg‘
>>> str[:]
‘abcdefg‘
从第一个元素开始
>>> str[0:3]
‘abc‘
>>> str[:3]
‘abc‘
到最后一个元素结束
>>> str[2:7]
‘cdefg‘
>>> str[2:]
‘cdefg‘
序列切片
>>> str[2:5]
‘cde‘
>>> str[3]
‘d‘
------反向索引-------
反向索引最末的一个索引值定义: final_index = -len(str)
>>> str[-7]
‘a‘
>>> str[-7:-1]
‘abcdef‘
(5)扩展切片操作:[::]
>>> list = ‘abcdef‘
>>> list[::-1] #翻转操作
‘fedcba‘
>>> list[::2] #隔一个取一个
‘ace‘
(6)比较
字符串做比较是按照ASCII值的大小来比较的。
>>> str1 = ‘abc‘
>>> str2 = ‘def‘
>>> str3 = ‘xyz‘
>>> str1 < str2
True
>>> str1 > str3
False
>>> str1 != str3
True
>>> str1 == ‘xyz‘
False
(7)补充更多内容
切片操作的开始和结束索引值可以超过字符串的长度,换句话说,起始索引可以小于0,而对于结束索引,即使索引值为100的元素并不存在也不会报错,举例:
>>> list = ‘abcdef‘
>>> list[1:100]
‘bcdef‘
2、字符串
(1)python里面单引号和双引号的作用是相同的。
(2)字符串跟数字类型一样是不可变的,也就是说不能改变一个字符串的一个字符或者一个子串,要改变一个字符串就必须重新创建一个新串,但是通过拼凑一个旧串的各个部分来得到一个新串是被允许的,如下:
>>> aString = ‘Hello World‘
>>> aString = aString[:6] + ‘Python‘
>>> aString
‘Hello Python‘
(3)删除字符和字符串
强调字符串是不可变的,所以你不能仅仅删除一个字符串中的一个字符,允许的操作为:
a.赋一个空字符串或者用del语句删除一个字符串;
>>> del aString
>>> aString
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name ‘aString‘ is not defined
b.剔除不需要的字符后将原字符串重新组合形成一个新串
>>> aString = ‘Hello World‘
>>> aString = aString[:3] + aString[4:]
>>> aString
‘Helo World‘