"""------ author == 李 墨 ------"""
列表是Python提供的容器型數(shù)據(jù)類型(序列)胚吁,可變,有序
可變(元素的個(gè)數(shù)和、值、順序) - 列表支持增刪改查
有序 - 支持下標(biāo)操作
列表數(shù)據(jù):[元素1低缩,元素2,元素3曹货,...]
元素:1咆繁、Python支持的任何類型數(shù)據(jù),值顶籽、賦值后的變量玩般、除了賦值以外的其它運(yùn)算表達(dá)式
2、不同元素的數(shù)據(jù)類型可以不一樣
list1=[{1,2,3},10.2,1+10j,True,'ddd','abc'.count('a'),1>2,10+2,[1,2,3],(1,2,3),lambda x:x*2,{'a':1,'b':2}]
print(list1)
列表相關(guān)的操作:
1礼饱、查 - 獲取列表中的元素坏为,
1)獲取單個(gè)元素,返回元素
'''
列表[下標(biāo)] - 獲取列表制定下標(biāo)的元素镊绪,下標(biāo)不能越界
'''
2)獲取部分元素 匀伏,返回列表
'''
列表[開始下標(biāo):結(jié)束下標(biāo):步長]
取不到返回[]
list1=[1,2,3,4,5,6]
list[-1:1]=[]
'''
list1=[1,2,3,4,5,6]
print(list1[-1:1])#空列表,不會(huì)報(bào)錯(cuò)
print(list1[:3:-1])#步長為-1镰吆,開始下標(biāo)省略帘撰,開始下標(biāo)為-1
str='123456'
print(str[-1:1])# 空字符串
3)遍歷(元素,下標(biāo))
'''
for 變量 in 序列:
循環(huán)體
for 下標(biāo) in range(len(序列)):
循環(huán)體
'''
for item in list1:
print(item)
for index in range(len(list1)):
print(index)
補(bǔ)充:isinstance
'''
isinstance(數(shù)據(jù)万皿,類型)- 判斷制定的數(shù)據(jù)是否是制定的類型,返回bool
'''
練習(xí)
list3=[23,78.2,'age',[2,3],290]
count_int=0
for item in list3:
if isinstance(item,int):
count_int+=1
print('列表中整型數(shù)據(jù)個(gè)數(shù)是:',count_int,sep='')
列表元素的增刪改
1.增 - 增加元素
1)append
'''
列表.append(元素) - 在列表最后添加一個(gè)元素(修改原列表摧找,不會(huì)產(chǎn)生新的列表),沒有返回值核行,None
'''
films=[1,2,3,4]
films.append('肖申克的贖救')
print(films.append('肖申克的贖救'))#返回None,執(zhí)行了append操作
print(films)
2)insert
'''
列表.insert(下標(biāo),元素)
在列表中指定下標(biāo)前插入一個(gè)元素
'''
films.insert(1,'ddd')
print(films)
練習(xí):有一個(gè)有序的數(shù)字列表蹬耘,插入一個(gè)數(shù)芝雪,要求插入后不改變列表排列方式
list_num=[1,12,32,45,60]
'''
insert_num=int(input('請(qǐng)輸入一個(gè)數(shù):'))
for index in range(len(list_num)-1):
if list_num[index]<=insert_num<=list_num[index+1]:
list_num.insert(index+1,insert_num)
break
else:
if insert_num<=list_num[0]:
list_num.insert(0,insert_num)
else:
list_num.append(insert_num)
print(list_num)
'''
刪,刪除列表中的元素综苔,修改原列表惩系,不會(huì)產(chǎn)生新的數(shù)據(jù)
'''
1)del 列表[下標(biāo)],刪除列表中指定下標(biāo)對(duì)應(yīng)的元素,沒有返回值如筛,不能越界
del list[0]
del 在Python中能刪除任何東西
2)remove
列表.remove(元素)堡牡,刪除列表中指定的元素
注意:1、如果元素有多個(gè)杨刨,只刪除第一個(gè)晤柄。2、如果元素不存在妖胀,會(huì)報(bào)錯(cuò)芥颈,list.remove(x): x not in list
3)pop
列表.pop() - 取出列表中最后一個(gè)元素
列表.pop(下標(biāo)) - 取出列表制定下標(biāo)的元素
返回取出的值
'''
del list_num[0]
print(list_num)
list_num.remove(12)
print(list_num)
print(list_num.pop())
print(list_num)
刪除低于60的所有成績,從后往前刪,或者使用while控制下標(biāo)和條件判斷
scores=[70,45,50,87,67,30,100]
a=len(scores)
index=c=0
while True:
if scores[index]<60:
del scores[index]
c+=1
else:
index+=1
c+=1
if c==a-1:
break
print(scores)
for index in range(len(scores)-1,-1,-1):
if scores[index]<60:
del scores[index]
print(scores)
scores=[70,45,50,87,67,30,100]
index=0
while index<len(scores):
if scores[index]<60:
del scores[index]
continue
index+=1
print(scores)
'''
scores=[12,2,3,4,56,100]
'''
scores=[12,2,3,4,56,66,100]
temp1=scores#temp和scores存儲(chǔ)的是列表的地址,地址一樣赚抡,指向的數(shù)據(jù)一樣爬坑,列表變化,兩個(gè)都變化
temp2=scores[:]#地址不一樣涂臣,兩個(gè)獨(dú)立的列表盾计,和copy功能一樣
for item in scores[:]: #scores.remove 不會(huì)對(duì)scores[:]造成影響
if item<60:
scores.remove(item)
print(scores)
改 - 修改元素的值
'''
列表[下標(biāo)] = 新值,修改制定下標(biāo)對(duì)應(yīng)元素為新值
下標(biāo)不能越界
'''
列表運(yùn)算
1)數(shù)學(xué)運(yùn)算:+ *肉康,
'''
- :列表1+列表2產(chǎn)生一個(gè)新的列表
- :只能乘以正整數(shù)
'''
list1=[1,2,3,4]
list2=[6,76,7]
list3=list1+list2
print(list3)
print(list3*2)
2)比較運(yùn)算闯估,支持所有的運(yùn)算,< >沒有意義吼和,一般只參與==和!=,列表必須一模一樣涨薪,==才為True
集合只要內(nèi)容意義,順序沒關(guān)系
print({1,2,3}=={3,2,1})
in not in
判斷列表中是否包含制定的元素炫乓,元素 in 列表刚夺,元素 not in 列表
print([1,2] in [1,2,3,4,5])#false
print([1,2] in [[1,2],1,2,2])#True
len(列表),len(序列)末捣,所有序列都可以
list(數(shù)據(jù))執(zhí)行的數(shù)據(jù)轉(zhuǎn)化為列表侠姑,不是所有的數(shù)據(jù)都能轉(zhuǎn)化為列表,所有的序列都能轉(zhuǎn)化為列表
不是序列不能轉(zhuǎn)化為列表
字符串箩做,range莽红,元組,集合....
print(list('1234'))
dict_1={'a':1,'b':2,'c':3}
print(list(dict_1))
max/min(列表),1安吁、列表中元素類型必須一致醉蚁,2、數(shù)據(jù)支持比較運(yùn)算
list1=[21,2,46,7,8,89,9,-1,6,45,4]
list1.sort()
print(list1)
字符串鬼店,列表网棍,元組
pycharm中的三種波浪號(hào): 紅色 - 語法錯(cuò)誤! 灰色 - 格式錯(cuò)誤! 綠色 - 單詞錯(cuò)誤!
s='123456789'
print(s[:3:-1])
字符串1.count(字符串2)
print('123345'.count('3'))
字符串1.find(字符串2,startindex,endindex),沒有返回-1
print('123345'.find('9'))
print('1239345'.find('9',0,2))
字符串.join(序列):將序列中的元素取出來,中間用制定字符串進(jìn)行拼接在一起妇智,產(chǎn)生一個(gè)新字符串滥玷。
print('*'.join('abc'))
print('='.join('abc'))
print(''.join(['a','b','c']))
lower() 大寫轉(zhuǎn)小寫
upper() 小寫轉(zhuǎn)大寫
max(序列),min(序列)巍棱,求序列中最值惑畴,序列:字符串,列表航徙。桨菜。。
字符串中按字符的編碼大小來比較
print(max('afrgaqreg'))
print(min('afrgaqreg'))
字符串.replace(old,new),new替換old,全部替換捉偏。replace(old,new,2)替換兩次
字符串.replace(old,new,替換次數(shù))
print('strwdd'.replace('rw','xx'))
字符串1.split(字符串2),字符串切割泻红。將字符串1按照字符串2進(jìn)行切割夭禽,返回的是列表。
str1='how are you fine!and you'
print(str1.split(' '))#按空格進(jìn)行切割谊路,返回列表
swapcase() 大寫轉(zhuǎn)小寫讹躯,小寫轉(zhuǎn)大寫
print('dafdaADSFFQAW'.swapcase())
print('dafdaADSFFQAW'.lower())
print('dafdaADSFFQAW'.upper())
print('dafdaADSFFQAW'.split('a'))
print('a'.join(['d','afa','afawe']))
print('a b c d'.split(' '))