1. 程式人生 > >【和孩子一起學編程】 python筆記--第四天

【和孩子一起學編程】 python筆記--第四天

insert ima 取出 指定 列表刪除元素 dex 二維 刪除列 字符

第十一章:

可變循環

newStars = int(input("how many stars do you want?"))
for i in range(newStars):
    print("*")

#輸出:
#how many stars do you want? 3
#*
#*
#*

可變嵌套循環

newline = int(input("how many lines do you want?"))
newStars = int(input("how many stars do you want?"))
for j in range(newline):
    for i in
range(newStars): print(*)

長代碼行:用反斜杠(\)或者加小括號()

lines = a+b+             c + d +             e + f

lines = (a+b+ c + d + e + f)

十二章:列表

創建一個空列表

newList = []

向空列表裏追加內容:

調用函數.append()

newList = []
newList.append(abc)
print(newList)

向列表追加元素之前,必須現有列表,追加的元素在列表最末尾

列表裏的元素類型可以是多樣的,包括數字,字符串,對象,其他列表

列表有點像是c中的數組

查找列表中的元素:

newList=[a,b,c,d,e,f]
print(newList[3])

#輸出為:’d‘

列表分片:

newList=[a,b,c,d,e,f]
print(newList[1:4])


#[‘b‘, ‘c‘, ‘d‘]

輸出還是一個列表,列表包含下界不包含上界,和range()一樣,而上面查找輸出的是字符

分片簡寫;

newList=[a,b,c,d,e,f]
print(newList[1:])
#[‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘] 輸出從第二個到結尾

newList=[a,b,c,d,e,f] print(newList[:4]) #[‘a‘, ‘b‘, ‘c‘, ‘d‘] 從第一個到第四個 newList=[a,b,c,d,e,f] print(newList[:]) #[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘] 輸出整個列表

向列表增加元素的其它方法:

技術分享圖片

append()只在末尾增加一個元素;

extend()如下:

newList=[a,b,c,d,e,f]
newList.extend([g,h,i])
print(newList)

技術分享圖片

insert():

技術分享圖片

技術分享圖片

這時append()添加了一個列表[‘f‘,‘g‘,‘h‘]而不是在原列表裏添加三個字符。

刪除列表元素:

remove()、del、pop()

newList=[a,b,c,d,e,f]
newList.remove(a)
print(newList)

remove()不需要知道元素具體位置,只要知道元素存在即可

del允許利用索引從列表刪除元素:

newList=[a,b,c,d,e,f]del newList[3]
print(newList)

pop()從列表 取出 最後一個 元素交給你。這說明你可以為它指派一個名字:

newList=[a,b,c,d,e,f]
new = newList.pop()
print(new)

也可以指定列表中的一個元素取出:

newList=[a,b,c,d,e,f]
new = newList.pop(3)
print(new)

搜索列表

in關鍵字:

newList=[a,b,c,d,e,f]
if a in newList:
    print(exist)

‘a‘ in newList 是一個boole表達式,會返回ture或false:

newList=[a,b,c,d,e,f]
a in newList
# ‘a‘在列表返回ture
# 不在列表裏的返回false

查找索引:

newList=[a,b,c,d,e,f]
print(newList.index(d))
#輸出‘d‘在列表中的索引 3

如果列表中沒有這個值,index()會給出一個錯誤,所以最好結合in使用:

newList=[a,b,c,d,e,f]
if d in newList:
    print(newList.index(d))

循環處理列表:

newList=[a,b,c,d,e,f]
for i in newList:
    print(i)

列表排序
使用sort()方法:

newList=[b,a,c,f,d,e]
newList.sort()
print(newList)

sort()方法會自動按照字母順序排序,如果是 數字會按照從小到大排序

sort()會修改原列表,而不是創建一個新的列表

按逆序排序:

1:先正序排好,然後對這個列表逆置(reverse)

newList=[b,a,c,f,d,e]
newList.sort()
newList.reverse()
print(newList)

2:向sort()增加一個參數,直接讓它按降序排序(從大到小)

newList=[b,a,c,f,d,e]
newList.sort(reverse = 1)     #原書中為reverse = Ture,但是編譯器報錯,說Ture未定義
print(newList)

剛才的排序和逆置都是對原來的列表修改,如果想保留原來的列表,可以用分片記法建立副本

newList=[b,a,c,f,d,e]
new = newList[:]
new.sort(reverse = 1)
print(new)

另一種排序方法:

sorted(),可以得到一個列表的有序副本而不會影響原列表順序

newList=[‘b‘,‘a‘,‘c‘,‘f‘,‘d‘,‘e‘]
new = sorted(newList)
print(newList)
print(new)

可改變和不可改變:

在python中數字和字符串是不可改變的,而列表是可改變的。

有些情況下你可能不希望列表可以改變。

有一個名為元組(tuple)的類型,這就屬於不可改變的列表:

my_tuple = (a,b,c)

這裏使用了圓括號,而不是中括號。

由於元組不可改變,所以不能對元組進行排序、追加、刪除

一旦元組創建,它就會一直保持不變

雙重列表:數據表

類似於c中的二維數組

一種建立雙重列表的方法:

a = [12,23,232,44]
b = [1234,3434,4,6]
c = [121,222,333,444]
d = [a,b,c]
for i in d:
    print(i)

也可以直接創建d

d = [[12,23,232,44],[1234,3434,4,6],[121,222,333,444]]
for i in d:
    print(i)

從表中獲取一個值:

d = [[12,23,232,44],[1234,3434,4,6],[121,222,333,444]]
print(d[0][3])

【和孩子一起學編程】 python筆記--第四天