第6章 序列 字串 列表和元組 2

2021-08-26 06:23:03 字數 3092 閱讀 7941

string 模組預定義的字串:

for迴圈的else語句是乙個可選項,它只在for迴圈完整的結束,沒有遇到break時執行。

>>> x = [1,2,3,4,5]

>>> for item in range(0, len(x)):

... print x[item]

... else:

... print "the last value of item is ", item

... 12

345the last value of item is 4

>>>

2. 連線符(+)

字串的join():

>>> ''.join(('1','2','3','4'))

'1234'

>>>

3. 編譯時字串連線

python的語法允許你在原始碼中把幾個字串連在一起寫,以此來構建新的字串。通過這種方法可以把長的字串分成幾部分寫,而不用加反斜槓。這種寫法的好處是可以把注釋加進來。

>>> foo = "hello" " " "world" "!"

>>> foo

'hello world!'

>>>

4. 普通字串轉化為unicode字串。

如果把乙個普通字串和乙個unicode字串做連線處理,python會在連線操作前先把普通字串轉化為unicode字串。

重複操作符包含了原有字串的多個拷貝的新串。

>>> "anders!!!" * 3

'anders!!!anders!!!anders!!!'

6.4 只適用於字串的操作符

6.4.1 格式化操作符(%)

python支援兩種格式的輸入引數:第一種是元組,第二種是字典形式。

>>> "%s %s" % ("anders", "fan")

'anders fan'

>>> "%(anders)s %(fan)s" %

'anders fan'

>>>

6.4.2 字串模版:更簡單的替代品

新式的字串模版的優勢是不用去記住所有相關細節的,template物件有個方法substitute()。

>>> from string import template

>>> s = template("there are $ $!")

>>> print s.substitute(howmany = "100m", lang = "money")

there are 100m money!

>>> print s.substitute(howmany = '2', lang = 'brothers')

there are 2 brothers!

>>>

6.4.3 原始字串操作符(r/r)

在原始字串裡,所有字元都是直接按照字面意思來使用,沒有轉義字元或不能列印的字元。

>>> '\n'

'\n'

>>> print '\n'

>>> r'\n'

'\\n'

>>> print r'\n'

\n>>>

6.4.4 unicode字串操作符(u/u)

u/u用來把標準字串或者包含unicode字元的字串轉換成完全的unicode字串物件。

unicode操作符必須出現在原始字串操作符的前面。

>>> u'abc'

u'abc'

>>> u'\u1234'

u'\u1234'

>>> u'abc\u1234\n'

u'abc\u1234\n'

>>> print u'abc'

abc>>> ur'hello \n world!'

u'hello \\n world!'

>>>

6.5 內建函式

6.5.1 標準型別函式

cmp():根據字串的ascii碼值進行比較。

>>> cmp("abc", "lmn")

-1>>> cmp("xyz", 'abc')

1>>> cmp('lmn', 'lmn')

0>>>

6.5.2 序列型別函式

len() 返回字串的字元數

>>> len(string.letters)

52max() and min()

返回最大或者最小字元

>>> max(string.digits)

'9'>>> min(string.digits)

'0'>>>

enumerate()

>>> s = "anders fan"

>>> for item, value in enumerate(s):

... print item, ' ', value

...

0 a1 n

2 d3 e

4 r5 s

6 7 f

8 a9 n

>>>

zip()

>>> first, second = "anders", "fan "

>>> zip(first, second)

[('a', 'f'), ('n', 'a'), ('d', 'n'), ('e', ' '), ('r', ' '), ('s', ' ')]

>>>

6.5.3 字串型別函式

raw_input():提示使用者輸入並將這個輸入返回。

str() and unicode()函式都是工廠函式,產生相對應的型別的物件。

isinstance()函式判斷乙個物件的型別。

chr()函式用乙個range(256)範圍內的整數做引數,返回乙個對應的字元。

unichr()函式跟chr()一樣,返回的unicode字元。

ord()函式是chr()函式或unichr()函式的配對函式,它以乙個字元作為引數,返回對應的ascii數值,或者unicode數值。

>>> chr(123)

'{'>>> unichr(123)

u'{'

>>> ord('a')

65>>> ord(u'\u1234')

4660

>>>

第6章 序列 字串 列表和元組 6

6.16 元組 元組的建立 訪問 更新,移除與列表類似,只是在更新與移除時不能更改原元組本身。6.17 元組操作符和內建函式 與列表完全一致 6.18 元組的特殊性 6.18.2 元組也不是那麼 不可變 元組物件本身是不可變的。6.18.3 預設集合型別 所有函式返回的多物件都是元組型別。def f...

第6章 序列 字串 列表和元組 5

6.13 內建函式 6.13.1 標準型別函式 cmp 6.13.2 序列型別函式 len max min sorted reversed enumerate zip sum list tuple alist a 1,3,4 for i,j in enumerate alist print i,j ...

序列 字串,列表,元組,字典

字串,str 用 包裹 str gu,yao,hu 列表,list 用包裹 spr str.split print spr gu yao hu 切片操作 spr 0 gu str.split 2 hu print spr 0 1 gu print spr 3 gu yao hu print spr ...