1. 程式人生 > >python之路day04--列表的增刪改查,巢狀、元組的巢狀、range、for迴圈巢狀

python之路day04--列表的增刪改查,巢狀、元組的巢狀、range、for迴圈巢狀

列表增刪改查

增加 append
li = ['taibai','zy','nvshen']
li.append('aa')
print(li) #['taibai', 'zy', 'nvshen', 'aa']
#需求:迴圈,互動,退出
# li = ['taibai','zy','nvshen']
#
# while 1:
#     username = input('請輸入:')
#     if username.strip().upper() == 'Q'.upper():
#         print('成功退出')
#         break
# else: # li.append(username) # print(li)
insert 插入
li.insert(3,'bb')
print(li) #['taibai', 'zy', 'nvshen', 'bb', 'aa']
extend 迭代迭代每一個元素
li.extend('abcdfg')
print(li) #['taibai', 'zy', 'nvshen', 'bb', 'aa', 'a', 'b', 'c', 'd', 'f', 'g']
li.extend([1,2,3,'vc',[1,2,3]]) #
迭代列表裡的每一個元素 print(li) #['taibai', 'zy', 'nvshen', 'bb', 'aa', 'a', 'b', 'c', 'd', 'f', 'g', 1, 2, 3, 'vc', [1, 2, 3]]
#pop
li = ['taibai','zy','nvshen']
li.pop(0)
print(li) #['zy', 'nvshen']
#remove

li.remove('zy')
print(li) #['nvshen']
#clear

li.clear()
print(li)#[]

li = ['taibai','zy','nvshen']
li[0] = 'z'   #右邊的賦值給左邊
print(li) #['z', 'zy', 'nvshen']

print(li[0:2]) #['z', 'zy']
# li[0:2] = 'zhangyang'
# print(li) #['z', 'h', 'a', 'n', 'g', 'y', 'a', 'n', 'g', 'nvshen']
查詢列表中每一個元素
for i in li:
    print(i)
print(li.index('zy'))  #1
#切片、索引 查詢
print(li[0]) #z
print(li[0:2])#['z', 'zy']

公共方法

len
len
li = ['taibai','zy','nvshen']
li2 = ['taibai','zy','nvshen',1,[1,2,3]]
l = len(li)
l1 = len(li2)
print(l) #3
print(l1) #5   #返回列表中有多少元素
count
print(li.count('taibai'))#1
index 找索引
print(li.index('taibai')) #0
sort 排序
li = [1,2,4,5,8,9]
li.sort()
print(li) #[1, 2, 4, 5, 8, 9]
#排序後反轉
li.sort(reverse=True)     #def sort(self, key=None, reverse=False): #預設reverse=False 為正序
print(li) #[9, 8, 5, 4, 2, 1]

 

反轉 (不等於排序)
li = [1,2,4,5,8,9]
li.reverse()
print(li) #[9, 8, 5, 4, 2, 1]

列表的巢狀

li =['taibai','武藤','苑昊',['alex','egon',89],23]
#找到藤--找到字串在進行切片
print(li[1][1]) #
print(li[3][0][1]) #l

#找到taibai,改成Taibai在放回去
li[0]=li[0].capitalize()
print(li) #['Taibai', '武藤', '苑昊', ['alex', 'egon', 89], 23]

#昊改成日天在放回去
li[2] ='苑日天'
print(li) #['Taibai', '武藤', '苑日天', ['alex', 'egon', 89], 23]

li[2]=li[2].replace('','日天')  #字串只能替換,不能修改
print(li) #['Taibai', '武藤', '苑日天', ['alex', 'egon', 89], 23]


#找到alex 全部變成大寫,放回原處
li[3][0]=li[3][0].upper()
print(li) #['Taibai', '武藤', '苑日天', ['ALEX', 'egon', 89], 23]

元組的巢狀

#元組 (只讀列表) 可以被查詢,不可以修改,可迴圈查詢,可切片
# 兒子不能改,孫子可以改   #taibai屬於列表(可以修改),列表屬於這個元組
tu =(1,2,3,'alex',[1,2,3,'taibai'],'egon')

print(tu[3]) #alex
print(tu[0:3]) #(1, 2, 3)
for i in tu:
    print(i)
#1
2
3
alex
[1, 2, 3, 'taibai']
egon


taibai 改成全大寫
tu[4][3]=tu[4][3].upper()
print(tu) #(1, 2, 3, 'alex', [1, 2, 3, 'TAIBAI'], 'egon')

tu[4].append('sb')
print(tu) #(1, 2, 3, 'alex', [1, 2, 3, 'TAIBAI', 'sb'], 'egon')

 

join-->list --str (列表轉換成字串)
split-->str --list(字串轉換成列表)

join S.join(iterable) -> str   (範圍是可迭代物件,int 和bool不行)
join-->list --str (列表轉換成字串)
split-->str --list(字串轉換成列表)

s='alex'
s1= '_'.join(s)
print(s1) #a_l_e_x
s2 = '+'.join(s)
print(s2) #a+l+e+x


l =['taibai','武藤','苑昊']
l1 =''.join(l)  #返回的是字串
print(l1) #taibai武藤苑昊

 

range

#range 相當於一個列表,裡面都是數字  range(0,10,2) 首尾+步長
for i in range(0,100):
    print(i)

for i in range(10,0,-1):  #從10開始,0結束,步長-1
    print(i) # 10,9,8,7,6,5,4,3,2,1

for迴圈巢狀

迴圈輸出列表中元素,包括列表中的列表
print(type(li)) #<class 'list'>
li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'wusri']

1)直接迴圈找出list
for i in li:
    if type(i) == list:
        for j in i:
            print(j)
    else:
        print(i)


2)用索引來找出type=list
for i in range(len(li)):
    if type(li[i]) == list:
        for j in li[i]:
            print(j)
    else:
        print(li[i])