CH03序列及通用操作

【課程3.2】 序列通用操作

序列分類:可變序列l(wèi)ist,不可變序列tuple重贺、str骑祟。

判斷值是否屬于序列
lst = [1,2,3,4,5,6]
a,b = 1,10
print(a in lst)  # a 在 lst 序列中 , 如果 x 在 y 序列中返回 True回懦。
print(b not in lst)  # b 不在 lst 序列中 , 如果 x 不在 y 序列中返回 True。
##### 序列鏈接與重復(fù)

lst1 = [1,2,3]
lst2 = ['a','b','c']
print(lst1+lst2)  # "+":序列的鏈接
print(lst1*3,lst2*2)  # "*":序列重復(fù)

結(jié)果如下:

[1, 2, 3, 'a', 'b', 'c']
[1, 2, 3, 1, 2, 3, 1, 2, 3] ['a', 'b', 'c', 'a', 'b', 'c']
下標(biāo)索引
lst = [1,2,3,4,5,6,7,8,9,0]
print(lst[0],lst[2],lst[9])  # 索引從0開始次企,eg lst[2]中怯晕,下標(biāo)索引是2,指向lst的第3個(gè)值
print(lst[-1])  # 索引-1代表最后一個(gè)值
#print(lst[10])  # 這里一共有10個(gè)值缸棵,所以最大索引是9
切片
lst = [1,2,3,4,5,6,7,8,9,0]
print(lst[2:5])  # 切片可以理解成列表的值區(qū)間舟茶,且是一個(gè)左閉右開區(qū)間,這里lst[2:5]代表的區(qū)間是:索引2的值 - 索引4的值
print(lst[:5])  # 左邊無索引堵第,代表從索引0開始
print(lst[4:])  # 右邊無索引吧凉,代表以最后一個(gè)值結(jié)束
print(lst[5:-1])  # 索引5的值 - 倒數(shù)第二個(gè)值 (切片是右閉區(qū)間,注意了)
步長
lst = [1,2,3,4,5,6,7,8,9,0]
print(lst[0:5:2])  # List[i:j:n]代表:索引i - 索引j踏志,以n為步長
print(lst[::2])  # 按照2為步長阀捅,從第一個(gè)值開始截取lst數(shù)據(jù)
print(lst[1::2])  # 按照2為步長,從第二個(gè)值開始截取lst數(shù)據(jù)
序列的基本內(nèi)置全局函數(shù)
lst = [1,2,3,4,5,6,7,8,9,0]
print(len(lst))  # 列表元素個(gè)數(shù)
print(max(lst),min(lst),sum(lst))  # 返回列表的最大值针余、最小值饲鄙、求和,這三個(gè)函數(shù)都只針對(duì)數(shù)字的list
print(lst.index(3))  # .index(obj)方法:從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置

lst = [1,1,2,3,3,4,4,4,4,5,6]
print(lst.count(4))  # .count(obj)方法:計(jì)算值的出現(xiàn)次數(shù)

【課程3.3】 列表list常用操作

序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)圆雁,它支持字符忍级,數(shù)字,字符串甚至可以包含列表(即嵌套)
列表用 [ ] 標(biāo)識(shí)摸柄,是 python 最通用的復(fù)合數(shù)據(jù)類型颤练。
列表中值的切片也可以用到變量 [頭下標(biāo):尾下標(biāo)] ,就可以截取相應(yīng)的列表驱负,從左到右索引默認(rèn) 0 開始,從右到左索引默認(rèn) -1 開始患雇,下標(biāo)可以為空表示取到頭或尾跃脊。
加號(hào) + 是列表連接運(yùn)算符,星號(hào) * 是重復(fù)操作

列表的特征
lst1 = [1,2,3,'a','b','c',[1,2,3]]
# 可包含任意類型的對(duì)象:數(shù)值苛吱、字符串酪术、列表等

lst2 = [143,56,894,67,43]
print(lst2[0],lst2[4],lst2[-1])
# 通過下標(biāo)索引訪問序列中的值 → 序列的順序是不能改變的,通過索引來定位列表的元素

lst3 = [1,2,3]
lst3 = lst3 * 3
print(lst3)
# 可隨意變換列表長度,相當(dāng)于隨意指定新的列表

lst4 = [1,2,['a','b']]
# 可嵌套

lst5 = [100,101,102]
lst5[0] = 10
print(lst5)
# 可原位改變

列表與生成器
# 列表與生成器

print(range(5),type(range(5)))  
# range()是生成器翠储,指向了一個(gè)范圍
# range(5)代表指向了0,1,2,3,4這幾個(gè)值
# range(2,5)代表指向了2,3,4這幾個(gè)值绘雁,注意這里不是使用:
# range(0,10,2)代表指向了0,2,4,6,8這幾個(gè)值,最后的2代表步長

lst = list(range(5))
print(lst)
# 通過list()函數(shù)生成列表
可變列表list常用操作 - 添加元素
lst = list(range(10))
lst.append('hello')
print(lst)
# list.append() 添加元素

lst.append(['a','b','c'])
print(lst)
lst.extend(['a','b','c'])
print(lst)

輸出結(jié)果如下:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello']
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello', ['a', 'b', 'c']]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello', ['a', 'b', 'c'], 'a', 'b', 'c']
可變列表list常用操作 - 刪除元素
# 可變列表list常用操作 - 刪除元素

lst = ['Jack','Jack','Tom','Tracy','Alex','White']
lst.remove('Jack')
print(lst)
# .remove方法:移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)

print(lst[3:5])
del lst[3:5]
print(lst)
# del語句:刪除list的相應(yīng)索引值

lst.clear()
print(lst)
# 移除所有值

可變列表list常用操作 - 插入元素
lst = list(range(10))
print(lst)
lst.insert(3,'a')
print(lst)
# x.insert(i,m)方法:在索引i處插入m援所,這里索引3代表第四個(gè)值

lst.insert(5,[1,2,3])
print(lst)
# 插入一個(gè)列表元素
可變列表list常用操作 - 復(fù)制
lst = list(range(10))
lst1 = lst
lst1[2] = 'hello'
print(lst,lst1)
# lst庐舟,lst1指向同一個(gè)列表

lst = list(range(10))
lst2 = lst.copy()
lst2[2] = 'hello'
print(lst,lst2)
# list.copy()方法:復(fù)制一個(gè)新的列表,lst住拭,lst2指向兩個(gè)列表(雖然兩個(gè)列表值相同)
可變列表list常用操作 - 排序
lst1 = [12,45,32,98,45,66,3]
lst2 = ["asd", "cxv", "ghv"]
lst1.sort()
lst2.sort()
print(lst1,lst2)
# 默認(rèn)升序排序/字母順序

lst1.sort(reverse=True)
lst2.sort(reverse=True)
print(lst1,lst2)
# 參數(shù)reverse:反向排序挪略,針對(duì)數(shù)字

lst3 = sorted(lst1)
lst3.append('hello')
print(lst1,lst3)
# 函數(shù)sorted():排序并復(fù)制
講一講元祖tuple :不可變的“列表”
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d"  # 可以不加括號(hào)
tup4 = (50,)  # 元組中只包含一個(gè)元素時(shí)历帚,需要在元素后面添加逗號(hào)

print(tup1[2],tup3[:2])  # 索引、切片和list一樣

del tup3 # 元祖不能單獨(dú)刪除內(nèi)部元素(不可變性)杠娱,但可以del語句來刪除整個(gè)元祖
#print(tup3)

print(len(tup1))
print(tup1 + tup2)
print(tup4 * 3)
print(max(tup2),min(tup2))
# 序列通用函數(shù)

lst = list(range(10))
tup5 = tuple(lst)
print(tup5)
# tuple()函數(shù):將列表轉(zhuǎn)換為元組

【課程3.4】 文本序列str常用操作

字符串是 Python 中最常用的數(shù)據(jù)類型挽牢。我們可以使用引號(hào)('或")來創(chuàng)建字符串
字符串也是序列:文本序列

字符串引號(hào)
str1 = "abc"
str2 = 'abc'
str3 = 'my name is "fatbird"'
# 雙引號(hào)單引號(hào)無區(qū)別,但文本中有引號(hào)的時(shí)候要相互交替使用

str4 = '''hello! how are you?
          I`m fine, thank you.'''
# 需要多行字符串時(shí)候用三引號(hào) ''' ''',""" """
轉(zhuǎn)義字符:\
print('\'', '\"')  # \',\" :分別輸出單引號(hào)摊求,雙引號(hào)
print('hello\nhow do you do?')  # \n:空行
print('\\')  # 輸出\禽拔,所以文件路徑用“/”或者“\\”

#輸出結(jié)果為:
' "
hello
how do you do?
\
序列通用功能
print('a' in 'abc')  # in/not in :判斷是否存在
print('我很帥' + "沒錯(cuò)")  # 文本連接
print('handsome '*4)  # 文本復(fù)制

st = 'abcdefg'
print(st[2],st[-1])
print(st[:2])
print(st[::2])
# 索引、切片室叉、步長

print(st.index('g'))  # .index()方法
print('st長度為:',len(st))  # 計(jì)算字符串長度(思考這里能否把逗號(hào)換為"+")

輸出結(jié)果如下:

True
我很帥沒錯(cuò)
handsome handsome handsome handsome 
c g
ab
aceg
6
st長度為: 7
字符串常用功能
# 字符串常用功能

st = "i`m handsome!"
st2 = st.replace('handsome','ugly')
print(st)
print(st2)
st = 'hahaha'
st2 = st.replace('ha','he',2)
print(st2)
# str.replace(old,new,count):修改字符串睹栖,count:更換幾個(gè)

st = "poi01,116.446238,39.940166"
lst = st.split(',')
print(lst)
# str.split(obj):拆分字符串,生成列表

lst = ['poi01', '116.446238', '39.940166']
m = '-'
st = m.join(lst)
print(st)
# str.join():連接字符串太惠,對(duì)象為序列

st = 'abcdefg'
print(st.startswith('a'), st.endswith('f'))
# str.startswith(“str”)  判斷是否以“str”開頭磨淌;str.endswith (“str”)  判斷是否以“str”結(jié)尾

st = 'aBDEAjc kLM'
print(st.upper())  # 全部大寫
print(st.lower())  # 全部小寫
print(st.swapcase())  # 大小寫互換
print(st.capitalize())  # 首字母大寫

st = '1234567'
print(st.isnumeric())  # 如果 string 只包含數(shù)字則返回 True,否則返回 False.

st = 'DNVAK'
print(st.isalpha())  # 如果 string 至少有一個(gè)字符并且所有字符都是字母則返回 True,否則返回 False

st = 'avd   '
print(st.rstrip())  # 刪除字符末尾的空格

輸出結(jié)果如下:

i`m handsome!
i`m ugly!
heheha
['poi01', '116.446238', '39.940166']
poi01-116.446238-39.940166
True False
ABDEAJC KLM
abdeajc klm
AbdeaJC Klm
Abdeajc klm
True
True
avd
格式化字符:在字符串中插入變量
ame = "FATBIRD"
truth = "%s is 好人" %name
print(truth)
# %s 表示我們這里要插入一個(gè)變量(字符串),%name代表這里我們插入name → 所以凿渊,兩個(gè)%解決問題

x = 4   
y = "hehe"  
z = 4.2
print("this is %i" %x)
print("this is %s" %y)
print("this is %f" %z)
# %s的s有什么含義:%s %z %f都是格式化字符串梁只,s/i/f分別代表插入字符串的源數(shù)據(jù)類型:整型/字符型/浮點(diǎn)型

輸出結(jié)果如下:

FATBIRD is 好人
this is 4
this is hehe
this is 4.200000
格式化字符:數(shù)字格式化的那些坑
m = 3.1415926 
print("pi is %f"  %m)
print("pi is %.2f" %m)
# 我只想輸出2位小數(shù):%.2f,此處是四舍五入埃脏!

m = 10.6
print("pi is %i"  %m)
print("pi is %.0f" %m)
# 區(qū)別:%i 不四舍五入搪锣,直接切掉小數(shù)部分

m = 100 
print("have fun %+i"  %m)
print("have fun %.2f"  % -0.01)
# 顯示正號(hào),負(fù)號(hào)根據(jù)數(shù)字直接顯示

m = 100 
print("have fun % i"  %m)
print("have fun % +i"  %m)
print("have fun % .2f"  %-0.01)
# 加空格彩掐,空格和正好只能顯示一個(gè)

m = 123.123123123 
print("have fun %.2e"  %m)
print("have fun %.4E"  %m)
# 科學(xué)計(jì)數(shù)法 %e  %E

m1 = 123.123123123
m2 = 1.2
print("have fun %g"  %m1)
print("have fun %g"  %m2)
# 小數(shù)位數(shù)少的時(shí)候自動(dòng)識(shí)別用浮點(diǎn)數(shù)构舟,數(shù)據(jù)復(fù)雜的時(shí)候自動(dòng)識(shí)別用科學(xué)計(jì)數(shù)法

輸出結(jié)果如下:

pi is 3.141593
pi is 3.14
pi is 10
pi is 11
have fun +100
have fun -0.01
have fun  100
have fun +100
have fun -0.01
have fun 1.23e+02
have fun 1.2312E+02
have fun 123.123
have fun 1.2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市堵幽,隨后出現(xiàn)的幾起案子狗超,更是在濱河造成了極大的恐慌,老刑警劉巖朴下,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件努咐,死亡現(xiàn)場離奇詭異,居然都是意外死亡殴胧,警方通過查閱死者的電腦和手機(jī)渗稍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來团滥,“玉大人竿屹,你說我怎么就攤上這事【逆ⅲ” “怎么了拱燃?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厨钻。 經(jīng)常有香客問我扼雏,道長坚嗜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任诗充,我火速辦了婚禮苍蔬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝴蜓。我一直安慰自己碟绑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布茎匠。 她就那樣靜靜地躺著格仲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诵冒。 梳的紋絲不亂的頭發(fā)上凯肋,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音汽馋,去河邊找鬼侮东。 笑死,一個(gè)胖子當(dāng)著我的面吹牛豹芯,可吹牛的內(nèi)容都是我干的悄雅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼铁蹈,長吁一口氣:“原來是場噩夢啊……” “哼宽闲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起握牧,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤容诬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后沿腰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體放案,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年矫俺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掸冤。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厘托,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稿湿,到底是詐尸還是另有隱情铅匹,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布饺藤,位于F島的核電站包斑,受9級(jí)特大地震影響流礁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜罗丰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一神帅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萌抵,春花似錦找御、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至讨永,卻和暖如春滔驶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卿闹。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國打工揭糕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人比原。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓插佛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親量窘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雇寇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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