亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python序列:字符串,列表和元組(一)

2019-11-06 07:36:48
字體:
來源:轉載
供稿:網友

Python序列

Python中有一些類型,它們的 成員有序排列,可以通過下標來訪問,這種類型統一被稱為序列,包括列表,字符串,數組。其中字符串和元組屬于不可變類型,即無法通過下標來賦值。如a[0]=’1’,而列表屬于可變類型,可以通過下標來賦值。這篇帖子主要講字符串,列表和元組在后面的帖子再講。

1 序列

序列類型有著相同的訪問模式:它的每一個元素可以通過指定一個偏移量的方式得到。而多個元素可以通過切片操作的方式一次得到。

1.1 標準類型操作符

Python中的標準類型操作符,即算術操作符、比較操作符、邏輯操作符,可以用作序列類型。

1.2 序列類型操作符

Python中對序列都適用的操作符,有:

成員關系操作符: in, not in obj in seq,判斷obj是否在seq中

鏈接操作符: + 把一個序列和另一個相同類型的序列做連接 seq1 + seq2

重復操作符: *

seq * int_num

可以獲得一個序列的拷貝

>>> a['2', '2']>>> a*2['2', '2', '2', '2']

切片操作符: [],[:],[::]

用索引來獲取序列類型的某個元素,或者指定開始或者結束元素,用來獲取一段連續的元素。

1.3 內建函數

內建函數list(), str(),和tuple()被用做在各種序列類型之間轉換。你可以把它們理解成其它語言的類型轉換,但是不是真正的類型轉換,因為會將元素值的索引賦值給新創建的元素,也就是說,list()等函數返回值的元素地址,和list()傳入參數的返回值地址相同,即使是不同類型之間的轉換(淺拷貝)!比如:

>>> a['2', '2']>>> b = str(b)>>> b"['2', '2']">>> id(a[0])139874793120072>>> id(b[2])139874793120072

可以看到a中的元素第一個2和b中元素的第一個2,內存地址相同!

還有一些可操作函數: enumerate(iter) len(seq) max(iter,key=None) min(iter, key=None) reversed(seq) sorted(iter, func=None, key=None, reverse=False) sum(seq, init=0) zip([it0, it1,… itN])

等等,后面會提到。

2 字符串

Python里,用單引號或者雙引號來表示一個字符串,可以用索引來訪問每一個元素,包括切片。 刪除字符串:可以通過給字符賦值空值或者用del關鍵字

>>> a = 'asdf'>>> del a>>> aTraceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'a' is not defined>>> a = 'asdfasdf'>>> a = ''>>> a''

看來賦空值還沒法刪除a

在字符串中,沒法用a[0]=’s’這類方法給字符串賦值,因為字符串,元組,數值類型都是不可更新類型,如果想要改變某個字符串的值,就必須通過創建一個新串來實現。比如,可以通過切片技術來獲取一個新串。

3 字符串和操作符

3.1 標準類型操作符

鏈接+,成員操作符(in , not in )很簡單了,不用說了。

普通字符串轉化為 Unicode 字符串: 如果把一個普通字符串和一個 Unicode 字符串做連接處理,Python 會在連接操作前先把普通字符串轉化為 Unicode 字符串:

>>> a = '1'>>> a'1'>>> a = a + u'2'>>> au'12'

4 只適用于字符串的操作符

4.4.1 格式化操作符(%)

>>> "%+d"'%+d'>>> "%+d" % 4'+4'>>> "%+d" % 10'+10'>>> "%+d" % -10/... '-10'>>> "%+d" % -10'-10'>>> re更多的就不寫了,還有很多用法,網上有。

4.4.2 字符串模板

>>> from string import Template>>> s = Template('There are ${howmany} ${lang} Quotation Symbols')>>>>>> print s.substitute(lang='Python', howmany=3) There are 3 Python QuotationSymbols>>>>>> print s.substitute(lang='Python') Traceback (most recent call last):File "<stdin>", line 1, in ?File "/usr/local/lib/python2.4/string.py", line 172, in substitutereturn self.pattern.sub(convert, self.template)File "/usr/local/lib/python2.4/string.py", line 162, in convert val =mapping[named]KeyError: 'howmany'>>>>>> print s.safe_substitute(lang='Python') There are ${howmany} Python QuotationSymbols

4.4.3 原始字符串操作符

有時候,我們不像讓字符串里的轉義字符發生作用,我們可以使用r/R來讓字符串變為原始字符串,這樣就不會解釋轉義字符了。使用小寫r或者大寫R都可以。如下的例子:

>>> a = '/nasdkfjsad/t'>>> print aasdkfjsad >>> a = r'/nasdkfjsad/t'>>> print a/nasdkfjsad/t

4.4.4 unicode字符串操作符

和上面的原始字符操作符用法基本一樣,如下例子:

>>> a = 'asdf'>>> a = u'asdf'>>> au'asdf'

5 內建函數

5.1 標準類型函數

cmp()

>>> str1 = 'abc'>>> str2 = 'lmn'>>> str3 = 'xyz'>>> cmp(str1, str2)-11>>> cmp(str3, str1)23>>> cmp(str2, 'lmn')0

5.2 序列類型函數

這類函數,會舉一些小例子:

len()

>>> au'asdf'>>> len(a)4

max() and min()

>>> au'asdf'>>> len(a)4>>> max(a)u's'>>> min(a)u'a'

顯然,max和min函數是返回字符串中ascii值最大的和最小的元素

enumerate()

>>> a = 'asdf'>>> for i , j in enumerate(a):... print i ,j... 0 a1 s2 d3 f

zip()

>>> zip('123', 'abc')[('1', 'a'), ('2', 'b'), ('3', 'c')]>>> a = zip('123', 'abc')>>> type(a)<type 'list'>>>> a = zip('1234', 'abc')>>> a[('1', 'a'), ('2', 'b'), ('3', 'c')]>>> a = zip('12', 'abc')>>> a[('1', 'a'), ('2', 'b')]>>> a = zip('123', 'ac')>>> a>>>> a = zip('123', 'ac', 'cvb')>>> a[('1', 'a'), ('2', 'c')][('1', 'a', 'c'), ('2', 'c', 'v')]>>> a = zip('123', 'ac', 'cvbfff')>>> a[('1', 'a', 'c'), ('2', 'c', 'v')]

可以看出,zip返回一個list列表,把所有參數的第一個元組組成一個元組存儲到列表里,再把所有參數的第二個元素都存儲在一個元組里,然后再存儲到列表里,依次下去,直到其中有一個參數沒有元素為止。

6 字符串內建函數

string.find(str, beg=0,end=len(string)) 檢測 str 是否包含在 string 中,如果 beg 和 end 指定范圍, 則檢查是否包含在指定范圍內,如果是返回開始的索引值,否則 返回-1

string.index(str, beg=0,end=len(string)) 跟 find()方法一樣,只不過如果 str 不在 string 中會報一個異常.

string.count(str, beg=0,end=len(string)) 返回 str 在 string 里面出現的次數,如果 beg 或者 end 指定則 返回指定范圍內 str 出現的次數

string.join(seq) Merges (concatenates)以 string 作為分隔符,將 seq 中所有的元素 (的字符串表示)合并為一個新的字符串

>>> a = ['a', 'b', 'c']>>> " ".join(a)'a b c'>>> a = ('a', 'b', 'c')>>> " ".join(a)'a b c'>>> " ".join('abc')'a b c'

如上所示:元組,列表,字符串都可以當做參數,但是只能是元素只能是字符串,不能傳入如[1, 2, 3]這種的列表,因為不接受整數。

string.lstrip() 截掉 string 左邊的空格 string.rstrip() 刪除 string 字符串末尾的空格. string.strip([obj])在 string 上執行 lstrip()和 rstrip() string.split(str=”“, num=string.count(str)) 以 str 為分隔符切片 string,如果 num有指定值,則僅分隔 num 個子字符串

別的函數就不列舉了。這幾個對我來說很常用。

Unicode

從Python1.6起就開始引進對于字符串的支持,是用來在多種雙字節字符的格式、編碼進行轉換的,其中包括一些對這類字符串的操作管理功能。

unicode術語:

ASCII:美國標準信息交換碼 Code point:類似于 ASCII 值,代表 Unicode 字符的值,范圍在 range(1114112)或者說0x000000 到 0x10FFFF. UTF:Unicode 或者 UCS 的轉換格式. UTF-8:八位 UTF 轉換格式(無符號字節序列, 長度為一到四個字節) UTF-16:16 位 UTF 轉換格式(無符號字節序列,通常是 16 位長[兩個字節],見 UCS2)

UTF-8是unicode編碼的其中一種,ASCII在UTF-8編碼中,其值和ASCII一樣,所以,UTF-8編碼很受歡迎。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩国欧美亚洲国产| 精品国产一区二区三区久久| 日韩av123| 亚洲最大激情中文字幕| 国产精品吊钟奶在线| 亚洲精品自拍第一页| 在线观看国产欧美| 欧美www视频在线观看| 欧美视频一区二区三区…| 亚洲精品久久7777777| 国产欧美日韩丝袜精品一区| 久久久久久久激情视频| 日韩av色在线| 欧美大片网站在线观看| 亚洲视频在线免费观看| 久久成人精品视频| 在线一区二区日韩| 在线观看国产精品91| 亚洲精品视频二区| 亚洲国产古装精品网站| 久久综合国产精品台湾中文娱乐网| 98精品在线视频| 日韩av手机在线观看| 欧美一级bbbbb性bbbb喷潮片| 91在线视频精品| 日韩一区二区在线视频| 国产精品久久综合av爱欲tv| 欧美床上激情在线观看| 亚洲国产小视频在线观看| 45www国产精品网站| 性色av一区二区三区红粉影视| 亚洲自拍欧美色图| 欧美韩日一区二区| 亚洲欧美中文字幕| 欧美一级片一区| 日韩中文字幕在线播放| 91chinesevideo永久地址| 亚洲丁香久久久| 国产精品久久av| 国内自拍欧美激情| 亚洲国产成人爱av在线播放| 久久手机精品视频| 欧美巨乳美女视频| 国产成人综合一区二区三区| 欧美黄色小视频| 亚洲视频精品在线| 姬川优奈aav一区二区| 最近2019中文免费高清视频观看www99| 亚洲成人精品久久| 亚洲欧美999| 国内成人精品视频| 中文字幕日韩欧美| 这里精品视频免费| 欧美俄罗斯乱妇| 欧美在线观看日本一区| 国产精品嫩草影院久久久| 久久久国产91| 国产精品揄拍一区二区| 国产精品国产三级国产aⅴ浪潮| 国产精品久久久久久久久久久新郎| 91精品国产综合久久久久久久久| 在线a欧美视频| 国内精品视频久久| 欧美性生交大片免网| 亚洲欧美国产精品专区久久| 国产丝袜高跟一区| 青草青草久热精品视频在线网站| 国产有码在线一区二区视频| 日韩亚洲一区二区| 亚洲加勒比久久88色综合| 国产精品一区二区久久国产| 日韩亚洲国产中文字幕| 精品国产1区2区| 亚洲欧美国产精品va在线观看| 欧美精品999| 日韩电影中文字幕一区| 17婷婷久久www| 成人综合国产精品| x99av成人免费| 97在线视频一区| 久精品免费视频| 欧美精品久久一区二区| 中文字幕亚洲图片| 精品久久久久久中文字幕一区奶水| 在线播放精品一区二区三区| 久久久久久久影院| 国产欧美久久久久久| 国产精品久久久久久久久久尿| 色妞久久福利网| 亚洲精品自拍偷拍| 国产精品久在线观看| 国产视频自拍一区| 国产精品吴梦梦| 欧美极品少妇xxxxx| 久久久久久97| 欧美精品成人91久久久久久久| 亚洲欧洲国产精品| 国产成人精品免费视频| 色噜噜狠狠色综合网图区| 久久频这里精品99香蕉| 精品国产一区二区三区久久久| 欧美大全免费观看电视剧大泉洋| 成人动漫网站在线观看| 亚洲无线码在线一区观看| 九九热99久久久国产盗摄| 欧美一级电影在线| 国产精品久久久久久婷婷天堂| 91久久精品国产91久久性色| 欧美性xxxxx极品娇小| 美女国内精品自产拍在线播放| 91精品国产电影| 国内免费久久久久久久久久久| 亚洲三级av在线| 日韩免费在线电影| 亚洲色图综合网| 欧美专区在线观看| 欧美亚洲视频在线观看| 亚洲精品wwww| 热久久免费国产视频| 久久久精品久久| 日韩久久免费视频| 亚洲欧洲日产国码av系列天堂| 亚洲男人天堂久| 国产成+人+综合+亚洲欧美丁香花| 国产成人精品久久亚洲高清不卡| 亚洲福利视频免费观看| 亚洲国产成人精品电影| 国产精品观看在线亚洲人成网| 欧美视频专区一二在线观看| 欧美一级电影免费在线观看| 中文字幕欧美视频在线| 亚洲国产精品热久久| 欧美亚洲国产日本| 日韩黄色av网站| 韩国国内大量揄拍精品视频| 国产成人精品999| 日本精品视频网站| www.xxxx精品| 国产精品激情av电影在线观看| 国产精品视频永久免费播放| 在线观看国产精品淫| 国语自产在线不卡| 91精品国产综合久久男男| 九九热精品视频在线播放| 成人做爰www免费看视频网站| 久久精品在线播放| 国产日韩换脸av一区在线观看| 亚洲欧美中文日韩在线v日本| 国产精品高清在线| 国产va免费精品高清在线观看| 欧美日韩电影在线观看| 91九色国产视频| 国产精品久久久久久搜索| 久久国产一区二区三区| 国产精品美女免费看| 日韩精品中文字幕在线播放| 国产日韩欧美综合| 欧美电影免费看| 色综合久久88色综合天天看泰| 97在线视频国产| 久久久久免费精品国产| 国产在线精品成人一区二区三区| 欧美做受高潮1| 亚洲福利视频免费观看|