首页 > 代码库 > 【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)切片操作符:[]、[:]、[::]

  • 正向索引
  • 反向索引
  • 默认索引
正向索引0123456
 序列abcdefg
反向索引-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‘