列表 元組 字符串筆記

序列 :

? ? 列表? 元組? 字符串

----------------------------------------------

元組和列表的特性

1.元組是不能修改的?

2.元組的創(chuàng)建:tuple(1,2,3,4,5) 列表的創(chuàng)建為list[1,2,3,4,5]

3.訪問元組和列表的方式相同(訪問下標(biāo))

4.創(chuàng)建元組的關(guān)鍵是 ,? 創(chuàng)建列表的關(guān)鍵是 []

5.元組的添加要通過元組切片再加元素等同于重新貼了一個(gè)標(biāo)簽

? ? 例如:temp = temp(:2) + ('a',) + temp(:2) 元組的標(biāo)志 , 不能少

6.可以用在元組的操作符:

? ? 拼接操作符('+') 重復(fù)操作符( '*')? 成員操作符( in , not in)? 邏輯操作符(and or)? 關(guān)系操作符('>' ,'<')

列表,元組,字符串的共同點(diǎn)

-都可以通過索引得到每一個(gè)元素

-默認(rèn)索引值總是從0開始

-可以通過分片的方法得到一個(gè)范圍內(nèi)的元素的集合

-有很多共同的操作符(重復(fù)操作符,拼接操作符,成員關(guān)系操作符)

----------------------------------------------

list()把一個(gè)可迭代對(duì)象轉(zhuǎn)化為列表

tuple([iterable])把一個(gè)可迭代對(duì)象轉(zhuǎn)化為元祖

len()返回一個(gè)可迭代對(duì)象 的長度

max()返回一個(gè)可迭代對(duì)象的最大值

min()返回一個(gè)可迭代對(duì)象的最小值

sum(iterable[ , start=0])返回序列iterable和可選參數(shù)start的總和

#列表添加

list1.append()在列表末尾添加一個(gè)數(shù)據(jù)

list1.extend(['a','b'])在列表末尾添加多個(gè)數(shù)據(jù)

list1.insert(x,'a')在第x個(gè)位置添加數(shù)據(jù)

#列表刪除

list1.remove('a')

del list(x)刪除第x個(gè)數(shù)據(jù) del list刪除整個(gè)list

list1.pop()效果類似于彈棧? 可以使用list1.pop(x)彈出第x個(gè)數(shù)據(jù)

reversed()返回一個(gè)迭代型對(duì)象 可以通過list(reversed(number))轉(zhuǎn)換為列表

sorted()把序列從小到大排列? 用法同list.sort

#列表的拷貝用list2 = list1[:] 如果直接list2 = list1 相當(dāng)于只是貼一個(gè)標(biāo)簽

enumerate()枚舉 也是返回一個(gè)對(duì)象 通過list(enumerate(number))轉(zhuǎn)換為元祖

zip()返回由各個(gè)參數(shù)的序列組成的對(duì)象? 通過list(zip(a,b))轉(zhuǎn)換為列表

? >>> a = [1,2,3,4,5,6,7,8]

? >>> b = [4,5,6,7,8]

? >>> list(zip(a,b))

? [(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]

? >>>

關(guān)鍵字參數(shù)+位置參數(shù):"{0} love 嘹屯 {c}".format("i",b="fishc",c="com")

>>> 'i love fishc com'

'{0:.1f}{1}'.format(27.685,'GB')

>>>'27.7GB'

% -> 百分號(hào)是格式化操作符號(hào)

#整數(shù)轉(zhuǎn)16進(jìn)制8進(jìn)制2進(jìn)制 0x100 0o100 0b100

print(hex(100))

print(oct(100))

print(bin(100))

#字符串操作函數(shù)大全

1腐缤、去空格及特殊符號(hào)

復(fù)制代碼代碼如下:

s.strip().lstrip().rstrip(',')

2、復(fù)制字符串

復(fù)制代碼代碼如下:

#strcpy(sStr1,sStr2)

sStr1 = 'strcpy'

sStr2 = sStr1

sStr1 = 'strcpy2'

print sStr2

3贵试、連接字符串

復(fù)制代碼代碼如下:

#strcat(sStr1,sStr2)

sStr1 = 'strcat'

sStr2 = 'append'

sStr1 += sStr2

print sStr1

4糟港、查找字符

復(fù)制代碼代碼如下:

#strchr(sStr1,sStr2)

# < 0 為未找到

sStr1 = 'strchr'

sStr2 = 's'

nPos = sStr1.index(sStr2)

print nPos

5攀操、比較字符串

復(fù)制代碼代碼如下:

#strcmp(sStr1,sStr2)

sStr1 = 'strchr'

sStr2 = 'strch'

print cmp(sStr1,sStr2)

6、掃描字符串是否包含指定的字符

復(fù)制代碼代碼如下:

#strspn(sStr1,sStr2)

sStr1 = '12345678'

sStr2 = '456'

#sStr1 and chars both in sStr1 and sStr2

print len(sStr1 and sStr2)

7秸抚、字符串長度

復(fù)制代碼代碼如下:

#strlen(sStr1)

sStr1 = 'strlen'

print len(sStr1)

8速和、將字符串中的大小寫轉(zhuǎn)換

復(fù)制代碼代碼如下:

S.lower() #小寫

S.upper() #大寫

S.swapcase() #大小寫互換

S.capitalize() #首字母大寫

String.capwords(S) #這是模塊中的方法。它把S用split()函數(shù)分開剥汤,然后用capitalize()把首字母變成大寫颠放,最后用join()合并到一起

#實(shí)例:

#strlwr(sStr1)

sStr1 = 'JCstrlwr'

sStr1 = sStr1.upper()

#sStr1 = sStr1.lower()

print sStr1

9最蕾、追加指定長度的字符串

復(fù)制代碼代碼如下:

#strncat(sStr1,sStr2,n)

sStr1 = '12345'

sStr2 = 'abcdef'

n = 3

sStr1 += sStr2[0:n]

print sStr1

10溜宽、字符串指定長度比較

復(fù)制代碼代碼如下:

#strncmp(sStr1,sStr2,n)

sStr1 = '12345'

sStr2 = '123bc'

n = 3

print cmp(sStr1[0:n],sStr2[0:n])

11、復(fù)制指定長度的字符

復(fù)制代碼代碼如下:

#strncpy(sStr1,sStr2,n)

sStr1 = ''

sStr2 = '12345'

n = 3

sStr1 = sStr2[0:n]

print sStr1

12胁澳、將字符串前n個(gè)字符替換為指定的字符

復(fù)制代碼代碼如下:

#strnset(sStr1,ch,n)

sStr1 = '12345'

ch = 'r'

n = 3

sStr1 = n * ch + sStr1[3:]

print sStr1

13鹿驼、掃描字符串

復(fù)制代碼代碼如下:

#strpbrk(sStr1,sStr2)

sStr1 = 'cekjgdklab'

sStr2 = 'gka'

nPos = -1

for c in sStr1:

? ? if c in sStr2:

? ? ? ? nPos = sStr1.index(c)

? ? ? ? break

print nPos

14欲低、翻轉(zhuǎn)字符串

復(fù)制代碼代碼如下:

#strrev(sStr1)

sStr1 = 'abcdefg'

sStr1 = sStr1[::-1]

print sStr1

15、查找字符串

復(fù)制代碼代碼如下:

#strstr(sStr1,sStr2)

sStr1 = 'abcdefg'

sStr2 = 'cde'

print sStr1.find(sStr2)

16畜晰、分割字符串

復(fù)制代碼代碼如下:

#strtok(sStr1,sStr2)

sStr1 = 'ab,cde,fgh,ijk'

sStr2 = ','

sStr1 = sStr1[sStr1.find(sStr2) + 1:]

print sStr1

#或者

s = 'ab,cde,fgh,ijk'

print(s.split(','))

17砾莱、連接字符串

復(fù)制代碼代碼如下:

delimiter = ','

mylist = ['Brazil', 'Russia', 'India', 'China']

print delimiter.join(mylist)

18、PHP 中 addslashes 的實(shí)現(xiàn)

復(fù)制代碼代碼如下:

def addslashes(s):

? ? d = {'"':'\\"', "'":"\\'", "\0":"\\\0", "\\":"\\\\"}

? ? return ''.join(d.get(c, c) for c in s)

s = "John 'Johny' Doe (a.k.a. \"Super Joe\")\\\0"

print s

print addslashes(s)

19凄鼻、只顯示字母與數(shù)字

復(fù)制代碼代碼如下:

def OnlyCharNum(s,oth=''):

? ? s2 = s.lower();

? ? fomart = 'abcdefghijklmnopqrstuvwxyz0123456789'

? ? for c in s2:

? ? ? ? if not c in fomart:

? ? ? ? ? ? s = s.replace(c,'');

? ? return s;

print(OnlyStr("a000 aa-b"))

20腊瑟、截取字符串

復(fù)制代碼代碼如下:

str = '0123456789′

print str[0:3] #截取第一位到第三位的字符

print str[:] #截取字符串的全部字符

print str[6:] #截取第七個(gè)字符到結(jié)尾

print str[:-3] #截取從頭開始到倒數(shù)第三個(gè)字符之前

print str[2] #截取第三個(gè)字符

print str[-1] #截取倒數(shù)第一個(gè)字符

print str[::-1] #創(chuàng)造一個(gè)與原字符串順序相反的字符串

print str[-3:-1] #截取倒數(shù)第三位與倒數(shù)第一位之前的字符

print str[-3:] #截取倒數(shù)第三位到結(jié)尾

print str[:-5:-3] #逆序截取,具體啥意思沒搞明白块蚌?

21闰非、字符串在輸出時(shí)的對(duì)齊

復(fù)制代碼代碼如下:

S.ljust(width,[fillchar])

#輸出width個(gè)字符,S左對(duì)齊峭范,不足部分用fillchar填充财松,默認(rèn)的為空格。

S.rjust(width,[fillchar]) #右對(duì)齊

S.center(width, [fillchar]) #中間對(duì)齊

S.zfill(width) #把S變成width長纱控,并在右對(duì)齊游岳,不足部分用0補(bǔ)足

22、字符串中的搜索和替換

復(fù)制代碼代碼如下:

S.find(substr, [start, [end]])

#返回S中出現(xiàn)substr的第一個(gè)字母的標(biāo)號(hào)其徙,如果S中沒有substr則返回-1胚迫。start和end作用就相當(dāng)于在S[start:end]中搜索

S.index(substr, [start, [end]])

#與find()相同,只是在S中沒有substr時(shí)唾那,會(huì)返回一個(gè)運(yùn)行時(shí)錯(cuò)誤

S.rfind(substr, [start, [end]])

#返回S中最后出現(xiàn)的substr的第一個(gè)字母的標(biāo)號(hào)访锻,如果S中沒有substr則返回-1褪尝,也就是說從右邊算起的第一次出現(xiàn)的substr的首字母標(biāo)號(hào)

S.rindex(substr, [start, [end]])

S.count(substr, [start, [end]]) #計(jì)算substr在S中出現(xiàn)的次數(shù)

S.replace(oldstr, newstr, [count])

#把S中的oldstar替換為newstr,count為替換次數(shù)期犬。這是替換的通用形式河哑,還有一些函數(shù)進(jìn)行特殊字符的替換

S.strip([chars])

#把S中前后chars中有的字符全部去掉,可以理解為把S前后chars替換為None

S.lstrip([chars])

S.rstrip([chars])

S.expandtabs([tabsize])

#把S中的tab字符替換沒空格龟虎,每個(gè)tab替換為tabsize個(gè)空格璃谨,默認(rèn)是8個(gè)

23、字符串的分割和組合

復(fù)制代碼代碼如下:

S.split([sep, [maxsplit]])

#以sep為分隔符鲤妥,把S分成一個(gè)list佳吞。maxsplit表示分割的次數(shù)。默認(rèn)的分割符為空白字符

S.rsplit([sep, [maxsplit]])

S.splitlines([keepends])

#把S按照行分割符分為一個(gè)list棉安,keepends是一個(gè)bool值底扳,如果為真每行后而會(huì)保留行分割符。

S.join(seq) #把seq代表的序列──字符串序列贡耽,用S連接起來

24衷模、字符串的mapping,這一功能包含兩個(gè)函數(shù)

復(fù)制代碼代碼如下:

String.maketrans(from, to)

#返回一個(gè)256個(gè)字符組成的翻譯表蒲赂,其中from中的字符被一一對(duì)應(yīng)地轉(zhuǎn)換成to阱冶,所以from和to必須是等長的。

S.translate(table[,deletechars])

# 使用上面的函數(shù)產(chǎn)后的翻譯表滥嘴,把S進(jìn)行翻譯熙揍,并把deletechars中有的字符刪掉。需要注意的是氏涩,如果S為unicode字符串,那么就不支持 deletechars參數(shù)有梆,可以使用把某個(gè)字符翻譯為None的方式實(shí)現(xiàn)相同的功能是尖。此外還可以使用codecs模塊的功能來創(chuàng)建更加功能強(qiáng)大的翻譯表。

25泥耀、字符串還有一對(duì)編碼和解碼的函數(shù)

復(fù)制代碼代碼如下:

S.encode([encoding,[errors]])

# 其中encoding可以有多種值饺汹,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默認(rèn)值為"strict"痰催,意思是UnicodeError兜辞。可能的值還有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通過codecs.register_error注冊(cè)的值夸溶。這一部分內(nèi)容涉及codecs模塊逸吵,不是特明白

S.decode([encoding,[errors]])

26、字符串的測(cè)試缝裁、判斷函數(shù)扫皱,這一類函數(shù)在string模塊中沒有,這些函數(shù)返回的都是bool值

復(fù)制代碼代碼如下:

S.startswith(prefix[,start[,end]])

#是否以prefix開頭

S.endswith(suffix[,start[,end]])

#以suffix結(jié)尾

S.isalnum()

#是否全是字母和數(shù)字,并至少有一個(gè)字符

S.isalpha() #是否全是字母韩脑,并至少有一個(gè)字符

S.isdigit() #是否全是數(shù)字氢妈,并至少有一個(gè)字符

S.isspace() #是否全是空白字符,并至少有一個(gè)字符

S.islower() #S中的字母是否全是小寫

S.isupper() #S中的字母是否便是大寫

S.istitle() #S是否是首字母大寫的

27段多、字符串類型轉(zhuǎn)換函數(shù)首量,這幾個(gè)函數(shù)只在string模塊中有

復(fù)制代碼代碼如下:

string.atoi(s[,base])

#base默認(rèn)為10,如果為0,那么s就可以是012或0x23這種形式的字符串进苍,如果是16那么s就只能是0x23或0X12這種形式的字符串

string.atol(s[,base]) #轉(zhuǎn)成long

string.atof(s[,base]) #轉(zhuǎn)成float

這里再強(qiáng)調(diào)一次加缘,字符串對(duì)象是不可改變的,也就是說在python創(chuàng)建一個(gè)字符串后琅捏,你不能把這個(gè)字符中的某一部分改變生百。任何上面的函數(shù)改變了字符串后,

都會(huì)返回一個(gè)新的字符串柄延,原字串并沒有變蚀浆。其實(shí)這也是有變通的辦法的,可以用S=list(S)這個(gè)函數(shù)把S變?yōu)橛蓡蝹€(gè)字符為成員的list搜吧,

這樣的話就可以使用S[3]='a'的方式改變值市俊,然后再使用S=" ".join(S)還原成字符串

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滤奈,隨后出現(xiàn)的幾起案子摆昧,更是在濱河造成了極大的恐慌,老刑警劉巖蜒程,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绅你,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡昭躺,警方通過查閱死者的電腦和手機(jī)忌锯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來领炫,“玉大人偶垮,你說我怎么就攤上這事〉酆椋” “怎么了似舵?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長葱峡。 經(jīng)常有香客問我砚哗,道長,這世上最難降的妖魔是什么砰奕? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任频祝,我火速辦了婚禮泌参,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘常空。我一直安慰自己沽一,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布漓糙。 她就那樣靜靜地躺著铣缠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昆禽。 梳的紋絲不亂的頭發(fā)上蝗蛙,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音醉鳖,去河邊找鬼捡硅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛盗棵,可吹牛的內(nèi)容都是我干的壮韭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纹因,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼喷屋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瞭恰,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤屯曹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后惊畏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恶耽,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年颜启,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了偷俭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡农曲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驻债,到底是詐尸還是另有隱情乳规,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布合呐,位于F島的核電站暮的,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淌实。R本人自食惡果不足惜冻辩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一猖腕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恨闪,春花似錦倘感、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至钧敞,卻和暖如春蜡豹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溉苛。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工镜廉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愚战。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓娇唯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凤巨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子视乐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本節(jié)要介紹的是Python里面常用的幾種數(shù)據(jù)結(jié)構(gòu)。通常情況下逢倍,聲明一個(gè)變量只保存一個(gè)值是遠(yuǎn)遠(yuǎn)不夠的捧颅,我們需要將一組...
    小黑y99閱讀 65,193評(píng)論 0 9
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡介】: Python 是一個(gè)...
    _小老虎_閱讀 5,746評(píng)論 0 10
  • 一较雕、set集合【了解】 1.概述 和數(shù)學(xué)上的集合基本是一樣的碉哑,特點(diǎn):不允許有重復(fù)元素,可以進(jìn)行交集亮蒋,并集扣典,差集的運(yùn)...
    墨雨love薏雪閱讀 676評(píng)論 0 0
  • 寫在前面的話 代碼中的# > 表示的是輸出結(jié)果 輸入 使用input()函數(shù) 用法 注意input函數(shù)輸出的均是字...
    FlyingLittlePG閱讀 2,758評(píng)論 0 8
  • 被偏愛的都有恃無恐 或許并不算青梅竹馬,起碼在我看來約莫是有點(diǎn)不屑的慎玖,我總是這樣贮尖,慣來喜歡用我的淺薄的眼光看待別人...
    羊卷卷閱讀 207評(píng)論 0 0