Python基礎知識(二)

上節簡單介紹了Python中版本、注釋以及數據類型,本節著重介紹Python中字符串、列表、元組的基本用法和注意事項。
往期目錄
Python基礎知識(一)

補充知識:序列的通用操作

序列的通用操作(str,list,tuple):取值,切片,步長,通用操作即指str,list,tuple都適用的操作。以下以字符串舉例:

#初始化字符串
s = '123456789'

#取值  按索引取值,自左向右從0開始
s[0]   
>>>'1'

#切片  給出起始索引和結束索引取出片段,[1:2]前者為起始索引,后者是結束索引
s[1:2]   
>>>'23'

#步長  [1:2:3] 3是指步長,在切片內每三個元素為一組取出第一個元素。如果切片內元素個數小于步長,則默認取出切片內全部元素;
s[1:2:3]  
>>>'2'
s[::3]  
>>>'147' 
#注:不設置起始索引和結束索引,默認取所有元素,步長為3,在切片每三組取出第一個元素

#用len()計算序列元素的個數
len(s)  
>>>9

一.列表的常用方法

  1. 創建列表
>>>ls = list()  

2.在列表末尾添加單個元素

>>>ls.append('a')   #參數是元素對象
>>>ls
['a']

3.在列表末尾添加多個元素

>>>ls.extend([1,2,3])  #類似于 +拼接
>>>ls
['a', 1, 2, 3]

注:ls.extend(obj),obj可以是元素、列表、字典,如是字典則只會添加字典的key 。

4.指定位置插入元素

ls.insert(2,'b')  #(索引,元素) 
>>>ls
['a',1,'b',2,3]

注:若要插入列表末尾索引用len(ls),如果索引值超出列表,則默認插入到列表末尾,不考慮插入索引越界。

5.取出列表中元素的索引

>>>ls.index('a')  
0
>>>ls.index('c')
ValueError: 'c' is not in list
>>>lss = ['a','b','b','b','c']
>>>lss.index('b',2)
2
>>>lss.index('b',1,2)
1

注:如果元素不存在列表中會報錯;如果元素中存在多個相同元素,可以指定從第幾個索引開始取;index('b',2)指從列表中第2個索引開始到結尾這一片段中取出最左邊的一個元素'b'的索引;index('b',1,2)指取出列表從索引1到索引2這一片斷中最左邊的一個元素‘b'的索引,如果取不到元素也報錯。

6.統計某個元素在列表中出現的次數

>>>ls.count('a')  
1
>>> ls.count('c')
0

注:如果元素不存在列表中,不報錯,返回值是0

7.出棧,指將指定元素移出列表,可指定位置(索引),默認值是-1,返回值是索引對應的元素

>>>ls.pop()
3
>>>ls
['a',1,'b',2]
>>>ls.pop(0)
'a'
>>>ls
[1,'b',2]  

8.移除單個元素

>>>ls.remove('b')
>>>ls
[1,2]
ls = [1,2,1,2,1,2]
ls.remove(1)
>>>ls
[2,1,2,1,2]

注:如果列表中存在多個相同元素,默認移除最左邊開始第一個

9.清空整個列表

>>>ls.remove()
>>>ls

10.復制整個列表

>>>ls1 = [1,2,3,4]
>>>ls2 = ls1.copy()
>>>ls2
[1,2,3,4]

11.反向列表中的元素

>>>ls1.reverse()
>>>ls1
[4,3,2,1]

12.對原列表進行排序,原列表中元素要相同

>>>ls1 = [2,1,3,5,4]
>>>ls1.sort()
>>>ls1
[1,2,3,4,5]
>>>ls2 = ['b','a','c']
>>>ls2.sort()
>>>ls2
['a','b','c']
>>>ls3 = [[1,2,2],(1,),'11232333']
>>>ls3.sort()
TypeError: '<' not supported between instances of 'tuple' and 'list'
>>>ls3.sort(key=len)
>>>ls3
[(1,), [1, 2, 2], '11232333']
>>>ls3.sort(key=len,reverse=True)
>>>ls3
['11232333', [1, 2, 2], (1,)]

注:L.sort(key=None, reverse=False),默認有兩個參數,key會自動根據列表中類型變化(前提是元素類型相同),也可指定根據何種類型排序,key = int / str / len / lambda ,reverse默認為升序;如果元素類型不同需要指定按何種標準排序,且元素都適用這一標準,如ls3

13.內置函數

內置函數會返回一個新的列表對象,而不改變原列表;
排序:sorted(obj,key=None,reverse=False)
反向:reversed(obj)

>>>sorted(ls3,key=len)
[(1,), [1, 2, 2], '11232333']
>>>ls3
['11232333', [1, 2, 2], (1,)]
>>>reversed(ls3)
[(1,), [1, 2, 2], '11232333']
>>>ls3
['11232333', [1, 2, 2], (1,)]

二.元組的常用方法

1.創建元組

>>>tp = ('a','b','a','b','a','b')

注意:聲明只有一個元素的元組時要加逗號,如 tp = ('a',)

2.統計元素在元組中出現的次數

>>>tp.count('a')
3

3.取出元組中元素的索引

>>>tp.index('a')
0
>>>tp.index('a',1)
2
>>>tp.index('a',2,4)
2
>>>tp.index('c')
ValueError: tuple.index(x): x not in tuple
>>>tp.index('a',1,2)
ValueError: tuple.index(x): x not in tuple

注:'a'在元組中有多個,默認取出最左邊的第一個;也可指定取出第幾個'a',自左向右從0開始。如果元素不存在或指定位置的元素不存在,會報錯。

三.字符串的常用操作

1.創建字符串

>>>s = '121212343434'

2.統計子字符串在字符串中出現的次數

>>>s.count('1')
3
>>>s.count('2',2,3)
1

注:在字符串中count方法帶可選參數,可指定在起始索引到結束索引切片中統計次數

3.取出子字符串的索引:S.index(sub[, start[, end]]) -> int

>>>s.index('1')
0
>>>s.index('2',1,3)
1

注:取出子字符串的索引,或取出子字符串在指定切片中的索引,有重復字符默認取出最左邊第一個。取不到則報錯。

4.查找字符的索引:S.find(sub[, start[, end]]) -> int

>>>s.find('1')
0
>>>s.find('2',1,2)
1

注:該方法和index類似,不同的是如果取不到,index報錯;find不報錯,返回-1。

5.字符串替換:S.replace(old, new[, count]) -> str

>>>s.replace('1','x')
'x2x2x2343434'
>>>s.replace('2','y',2)
'1y1y12343434
>>>s
'121212343434'

注:字符串是不可變的,所以替換并沒有改變原有字符串,而是得到了一個新的字符串。s.replace('2','y',2) 2是替換的個數。

6.字符串分割:S.split(sep=None, maxsplit=-1) -> list of strings

>>>s.split()
['121212343434']
>>> s.split('2')
['1', '1', '1', '343434']
>>> s
'121212343434'
>>> s.split('2',2)
['1', '1', '12343434']

注:s.split()返回一系列用空格分割的字符串列表;s.split('2',2)按'2'分割,最多分割2次。

7.字符串判其他操作

#判斷字符串是否以x開頭
s.startswith(x)
#判斷字符串是否以x結尾
s.endswith(x)
#字符串轉小寫
s.lower()
#字符串轉大寫
s.upper()
#測試是否全是小寫
s.islower ()
#測試是否全是大寫
s.isupper ()
#測試是否全是字符,都是返回 True,否則返回 False
s.isalpha ()
#測試是否全是數字,都是返回 True 否則返回 False
s.isdigit () 

新手上路多多指教!錯誤之處敬請指出來!下節介紹集合和字典!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容

  • 一、python 變量和數據類型 1.整數 Python可以處理任意大小的整數,當然包括負整數,在Python程序...
    績重KF閱讀 1,754評論 0 1
  • 最近在慕課網學習廖雪峰老師的Python進階課程,做筆記總結一下重點。 基本變量及其類型 變量 在Python中,...
    victorsungo閱讀 1,725評論 0 5
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,823評論 18 139
  • 在這樣的季節 在這樣的夜晚 我總愿一個人出去 悄悄的走出家門 順著小路 沿著堤岸 走向田野 夏夜 大山靜靜的臥著 ...
    山楂樹123閱讀 232評論 0 3
  • 001 提問式學習,更能有助于我們形成長期的,一貫的思考路徑。而沒有問題引導,我們只能零碎的,隨性的獲取一些不相干...
    z111111閱讀 173評論 0 0