2.4列表list
聲明:師從老男孩太白金星,不對(duì)代碼做任何保證,如有問題請(qǐng)自攜兵刃直奔沙河
?
Why:?我們現(xiàn)在已經(jīng)學(xué)過的數(shù)據(jù)類型有:數(shù)字,布爾值,字符串,大家都知道數(shù)字主要用于計(jì)算,bool值主要是條件判斷,只有字符串可以用于數(shù)據(jù)的存儲(chǔ),這些數(shù)據(jù)類型夠用么?對(duì)于一門語言來說,肯定是不夠用的。就說字符串:
????1,字符串只能存儲(chǔ)少量的數(shù)據(jù),對(duì)于大量的數(shù)據(jù)用字符串操作不方便也不易存儲(chǔ)。
????2,字符串存儲(chǔ)的數(shù)據(jù)類型太單一,只能是字符串類型。
????例如:‘1 True alex’ 像這樣的字符串,我如果通過切片或者其他方法將1 True alex 取出來,他也只能是字符串,但是我想要得到數(shù)字的1,布爾值的True,必須還要轉(zhuǎn)化,是不是很麻煩。
所以python給咱們也提供了一類數(shù)據(jù)類型,他能承載多種數(shù)據(jù)類型,這類數(shù)據(jù)類型被稱作容器類數(shù)據(jù)類型可以存儲(chǔ)大量的數(shù)據(jù)。列表就屬于容器類的數(shù)據(jù)類型。
What:這個(gè)數(shù)據(jù)類型就是list列表。
????列表是python的基礎(chǔ)數(shù)據(jù)類型之一 ,其他編程語言也有類似的數(shù)據(jù)類型.比如JS中的數(shù) 組, java中的數(shù)組等等. 它是以[ ]括起來, 每個(gè)元素用' , '隔開而且可以存放各種數(shù)據(jù)類型:?列表是python中的基礎(chǔ)數(shù)據(jù)類型之一,其他語言中也有類似于列表的數(shù)據(jù)類
型,比如js中叫數(shù)組,他是以[]括起來,每個(gè)元素以逗號(hào)隔開,而且他里面可以存放各種數(shù)據(jù)類型比如:
li = [‘a(chǎn)lex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]
列表相比于字符串,不僅可以儲(chǔ)存不同的數(shù)據(jù)類型,而且可以儲(chǔ)存大量數(shù)據(jù),32位python的限制是 536870912 個(gè)元素,64位python的限制是 1152921504606846975 個(gè)元素。而且列表是有序的,有索引值,可切片,方便取值。
How:那么這個(gè)列表如何使用呢?咱們從這幾方面去深入研究這個(gè)列表。
2.4.1?列表的創(chuàng)建
# 創(chuàng)建一個(gè)列表有三種方式:# 方式一:(常用) l1 = [1, 2, '太白']# 方式二:(不常用) l1 = list() # 空列表 # l1 = list(iterable) # 可迭代對(duì)象 l1 = list('123') print(l1) # ['1', '2', '3']# 方式三:列表推導(dǎo)式(后面的課程會(huì)講到) l1 = [i for i in range(1,5)] print(l1) # [1, 2, 3, 4]2.4.2?列表的索引切片
l1 = ['a', 'b', '太白', 3, 666]
print(l1[0]) # 'a'
print(l1[-1]) # 666
print(l1[1:3]) # ['b', '太白']
print(l1[:-1]) # ['a', 'b', '太白', 3]
print(l1[::2]) # ['a', '太白', 666]
print(l1[::-1]) # [666, 3, '太白', 'b', 'a']
l1 = ['a', 'b', '太白', 3, 666] print(l1[0]) # 'a' print(l1[-1]) # 666 print(l1[1:3]) # ['b', '太白'] print(l1[:-1]) # ['a', 'b', '太白', 3] print(l1[::2]) # ['a', '太白', 666] print(l1[::-1]) # [666, 3, '太白', 'b', 'a'] li = [1, 3, 2, "a", 4, "b", 5,"c"] 通過對(duì)li列表的切片形成新的列表l1,l1 = [1,3,2] 通過對(duì)li列表的切片形成新的列表l2,l2 = ["a",4,"b"] 通過對(duì)li列表的切片形成新的列表l4,l4 = [3,"a","b"] 通過對(duì)li列表的切片形成新的列表l6,l6 = ["b","a",3]
li = [1, 3, 2, "a", 4, "b", 5,"c"] 通過對(duì)li列表的切片形成新的列表l1,l1 = [1,3,2] 通過對(duì)li列表的切片形成新的列表l2,l2 = ["a",4,"b"] 通過對(duì)li列表的切片形成新的列表l4,l4 = [3,"a","b"] 通過對(duì)li列表的切片形成新的列表l6,l6 = ["b","a",3]
2.4.3.?增
# append 追加,給列表的最后面追加一個(gè)元素
l = [1, 2, 'a']
l.append(666)
print(l) # [1, 2, 'a', 666]
# insert 插入在列表的任意位置插入元素
l = [1, 2, 'a']
l.insert(1,'太白')
print(l) # [1, '太白', 2, 'a']
# extend 迭代著追加,在列表的最后面迭代著追加一組數(shù)據(jù)
l = [1, 2, 'a']
l.extend('太白a')
print(l)
列表的增
# append 追加,給列表的最后面追加一個(gè)元素 l = [1, 2, 'a'] l.append(666) print(l) # [1, 2, 'a', 666]# insert 插入在列表的任意位置插入元素 l = [1, 2, 'a'] l.insert(1,'太白') print(l) # [1, '太白', 2, 'a']# extend 迭代著追加,在列表的最后面迭代著追加一組數(shù)據(jù) l = [1, 2, 'a'] l.extend('太白a') print(l)
2.4.4.?刪
# pop 通過索引刪除列表中對(duì)應(yīng)的元素,該方法有返回值,返回值為刪除的元素
l = ['太白', 'alex', 'WuSir', '女神']
ret = l.pop(1)
print(ret,l) # alex ['太白', 'WuSir', '女神']
# remove 通過元素刪除列表中該元素
l = ['太白', 'alex', 'WuSir', '女神']
l.remove('alex')
print(l) # ['太白', 'WuSir', '女神']
# clear 清空列表
l = ['太白', 'alex', 'WuSir', '女神']
l.clear()
print(l) # []
# del
#按照索引刪除該元素
l = ['太白', 'alex', 'WuSir', '女神']
del l[2]
print(l) # ['太白', 'alex', '女神']
# 切片刪除該元素
l = ['太白', 'alex', 'WuSir', '女神']
del l[1:]
print(l) # ['太白']
# 切片(步長)刪除該元素
l = ['太白', 'alex', 'WuSir', '女神']
del l[::2]
print(l) # ['alex', '女神']
列表的刪
# pop 通過索引刪除列表中對(duì)應(yīng)的元素,該方法有返回值,返回值為刪除的元素 l = ['太白', 'alex', 'WuSir', '女神'] ret = l.pop(1) print(ret,l) # alex ['太白', 'WuSir', '女神']# remove 通過元素刪除列表中該元素 l = ['太白', 'alex', 'WuSir', '女神'] l.remove('alex') print(l) # ['太白', 'WuSir', '女神']# clear 清空列表 l = ['太白', 'alex', 'WuSir', '女神'] l.clear() print(l) # [] # del #按照索引刪除該元素 l = ['太白', 'alex', 'WuSir', '女神'] del l[2] print(l) # ['太白', 'alex', '女神']# 切片刪除該元素 l = ['太白', 'alex', 'WuSir', '女神'] del l[1:] print(l) # ['太白']# 切片(步長)刪除該元素 l = ['太白', 'alex', 'WuSir', '女神'] del l[::2] print(l) # ['alex', '女神']
2.4.5.?改
# 按照索引改值
l = ['太白', 'alex', 'WuSir', '女神']
l[0] = '男神'
print(l) # ['男神', 'alex', 'WuSir', '女神']
# 按照切片改值(迭代著增加)
l = ['太白', 'alex', 'WuSir', '女神']
l[1:3] = 'abcdefg'
print(l) # ['太白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '女神']
# 按照切片(步長)改值(必須一一對(duì)應(yīng))
l = ['太白', 'alex', 'WuSir', '女神']
l[::2] = '對(duì)應(yīng)'
print(l) # ['對(duì)', 'alex', '應(yīng)', '女神']
列表的改
# 按照索引改值 l = ['太白', 'alex', 'WuSir', '女神'] l[0] = '男神' print(l) # ['男神', 'alex', 'WuSir', '女神']# 按照切片改值(迭代著增加) l = ['太白', 'alex', 'WuSir', '女神'] l[1:3] = 'abcdefg' print(l) # ['太白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '女神'] # 按照切片(步長)改值(必須一一對(duì)應(yīng)) l = ['太白', 'alex', 'WuSir', '女神'] l[::2] = '對(duì)應(yīng)' print(l) # ['對(duì)', 'alex', '應(yīng)', '女神']
2.4.6.?查
切片去查,或者循環(huán)去查。
2.4.5 其他操作這些方法會(huì)在數(shù)據(jù)類型的補(bǔ)充時(shí)再給大家講~
2.4.5、其他操作
count(數(shù))(方法統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù))。
1 a = ["q","w","q","r","t","y"] 2 print(a.count("q"))index(方法用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置)
1 a = ["q","w","r","t","y"] 2 print(a.index("r"))sort (方法用于在原位置對(duì)列表進(jìn)行排序)。
?reverse (方法將列表中的元素反向存放)。
1 a = [2,1,3,4,5] 2 a.sort()# 他沒有返回值,所以只能打印a 3 print(a) 4 a.reverse()#他也沒有返回值,所以只能打印a 5 print(a) isinstance(方法用于判斷元素的類型,類似于typef方法)。
a = 1b = [1,2,3,4]
c = (1,2,3,4)
d = {‘a(chǎn)‘:1,‘b‘:2,‘c‘:3}
e = "abc"
if isinstance(a,int):
??? print "a is int"
else:
??? print "a is not int"
if isinstance(b,list):
??? print "b is list"
else:
??? print "b is not list"
if isinstance(c,tuple):
??? print "c is tuple"
else:
??? print "c is not tuple"
if isinstance(d,dict):
??? print "d is dict"
else:
??? print "d is not dict"
if isinstance(e,str):
??? print "d is str"
else:
??? print "d is not str"
列表也可以相加與整數(shù)相乘
l1 = [1, 2, 3] l2 = [4, 5, 6] # print(l1+l2) # [1, 2, 3, 4, 5, 6] print(l1*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]l1 = [1, 2, 3] l2 = [4, 5, 6] # print(l1+l2) # [1, 2, 3, 4, 5, 6] print(l1*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
計(jì)算列表的長度并輸出
列表中追加元素"seven",并輸出添加后的列表
請(qǐng)?jiān)诹斜淼牡?個(gè)位置插入元素"Tony",并輸出添加后的列表
請(qǐng)修改列表第2個(gè)位置的元素為"Kelly",并輸出修改后的列表
請(qǐng)將列表l2=[1,"a",3,4,"heart"]的每一個(gè)元素添加到列表li中,一行代碼實(shí)現(xiàn),不允許循環(huán)添加。
請(qǐng)將字符串s = "qwert"的每一個(gè)元素添加到列表li中,一行代碼實(shí)現(xiàn),不允許循環(huán)添加。
請(qǐng)刪除列表中的元素"ritian",并輸出添加后的列表
請(qǐng)刪除列表中的第2個(gè)元素,并輸出刪除的元素和刪除元素后的列表
請(qǐng)刪除列表中的第2至4個(gè)元素,并輸出刪除元素后的列表
相應(yīng)練習(xí)題
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 計(jì)算列表的長度并輸出 列表中追加元素"seven",并輸出添加后的列表 請(qǐng)?jiān)诹斜淼牡?個(gè)位置插入元素"Tony",并輸出添加后的列表 請(qǐng)修改列表第2個(gè)位置的元素為"Kelly",并輸出修改后的列表 請(qǐng)將列表l2=[1,"a",3,4,"heart"]的每一個(gè)元素添加到列表li中,一行代碼實(shí)現(xiàn),不允許循環(huán)添加。 請(qǐng)將字符串s = "qwert"的每一個(gè)元素添加到列表li中,一行代碼實(shí)現(xiàn),不允許循環(huán)添加。 請(qǐng)刪除列表中的元素"ritian",并輸出添加后的列表 請(qǐng)刪除列表中的第2個(gè)元素,并輸出刪除的元素和刪除元素后的列表 請(qǐng)刪除列表中的第2至4個(gè)元素,并輸出刪除元素后的列表
2.4.6 列表的嵌套
l1 = [1, 2, 'taibai', [1, 'WuSir', 3,]] 1, 將l1中的'taibai'變成大寫并放回原處。 2,給小列表[1,'alex',3,]追加一個(gè)元素,'老男孩教育'。 3,將列表中的'alex'通過字符串拼接的方式在列表中變成'alexsb' lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] 將列表lis中的"tt"變成大寫(用兩種方式)。 將列表中的數(shù)字3變成字符串"100"(用兩種方式)。 將列表中的字符串"1"變成數(shù)字101(用兩種方式)。補(bǔ)充:
列表轉(zhuǎn)化為字符串,join
li = ['taibai','alex','wusir','egon','女神',]
s = '++++'.join(li)
?
字符串轉(zhuǎn)為列表:
a = "alex wusir"print(a.split())
print(type(a))
?
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] 將列表lis中的"tt"變成大寫(用兩種方式)。 將列表中的數(shù)字3變成字符串"100"(用兩種方式)。 將列表中的字符串"1"變成數(shù)字101(用兩種方式)。
Where:(這個(gè)知識(shí)點(diǎn)用在什么地方):
你需要存儲(chǔ)大量的數(shù)據(jù),且需要這些數(shù)據(jù)有序的時(shí)候。
制定一些特殊的數(shù)據(jù)群體:按順序,按規(guī)則,自定制設(shè)計(jì)數(shù)據(jù)。
轉(zhuǎn)載于:https://www.cnblogs.com/yanglongyue/p/10640575.html
總結(jié)
- 上一篇: 【解惑】杨中科说给弟弟的话
- 下一篇: Python之正则表达式