python內置的三種常用數據結構:列表list、元組tuple、字典dict。
列表和元組都可以按順序保存元素,每個元素有自己索引。都可以通過
列表跟元組相比,列表可以修改,元組不可修改。
字典以key-value形式保存數據。
列表是[],元組是()
list1 = [1,2,3,4,5]
tuple1 = (1,2,3,4,5)
通過索引訪問,正序逆序。正序第一個是0,逆序第一個是-1
print(list1[1])
print(list1[-1])
#輸出
2
5
子序列:可以使用索引獲取中間的一段,slice
完整語法如下:
[start:end:step]
start,end分別表示索引開始的元素和索引結束的元素,都可以使用正數和負數,負數表示從倒數開始。step表示步長。
列表和元組支持加法運算,加法的和是倆個列表或元組所包含的元素的總和。列表只能和列表加,元組只能和元組加。
列表和元組支持乘法運算,和證書執行乘法運算。就是把他們包含的元素重複N次(N爲被乘的倍數)
in運算符:判斷列表或元組中是否存在某個元素
python內置了max()獲取最大值,min()獲取最小值,len()獲取列表或元組的長度。其中,max()、min()函數要求元組、列表的元素是相同類型且可以比較大小的。
序列封包和序列解包:
序列封包:程序把多個值賦給一個變量時,python會自動將多個值封裝成元組。
序列解包:將元組或列表直接賦給多個變量時,序列的各元素將會被依次賦值給每個變量(變量數和序列的元素數相同)。。
列表:
增加append()方法,把增加的數據作爲整體元素增加到列表的最後
追加extend()方法,追加所有元素
刪除del語句
remove()
修改列表元素
list1[1] = 5
count()方法:統計某個元素在列表中出現的次數
index()方法:判斷某個元素在列表中出現的位置
pop()方法:將列表當作棧使用,實現元素出棧功能
reverse()方法:將列表中元素反向存放
sort()方法:用於列表元素排序
字典:
可以使用dict()函數或者花括號創建字典。程序對字典的操作都是基於key的。元組可以做字典的key但列表不行。
clear()清空字典k-v對,變成空字典
get()根據key獲取value
update()若字典中原本沒有對應的key-value,增加;若原本有key-value,value值被覆蓋。
items()獲取字典的所有key-value對
keys()獲取字典的所有key
valuse()獲取字典的所有value
setdefault()根據key獲取value若不存在,先爲key設置一個默認value,再返回該value;若存在就直接返回value,不更改
流程控制:
if表達式、pass語句、assert斷言、while循環、for-in循環,循環else(while可以使用,for-in可以使用)、break結束循環、continue忽略本次循環剩下語句、return結束
zip()函數可以把兩個或多個列表壓縮成一個zip對象,通過該函數可以使用一個循環遍歷兩個或多個列表
繞圈圈:
覺得挺有趣的附上代碼。
#!usr/bin/env python3.6
#encoding:utf-8
'''
author:shadow
datetime:2020/5/2
explain:
繞圈圈
例子1:
1 8 7
2 9 6
3 4 5
例子2:
01 20 19 18 17 16
02 21 32 31 30 15
03 22 33 36 29 14
04 23 34 35 28 13
05 24 25 26 27 12
06 07 08 09 10 11
'''
def draw(size):
#生成二維數組
array = [[0]*size]
for i in range(size-1):
array += [[0]*size]
#方向0向下1向右2向上3向左
orient = 0
#j行索引,k列索引
j = 0
k = 0
for i in range(1,size*size+1):
array[j][k] = i
if j+k == size -1:
if j>k:
orient = 1
else:
orient = 2
elif (j==k)and (k>=size/2):
orient = 3
elif (j==k-1)and (k<=size/2):
orient = 0
if orient ==0:
j+=1
elif orient == 1:
k+=1
elif orient == 2:
k-=1
elif orient == 3:
j-=1
for i in range(size):
for j in range(size):
print("%02d"%array[i][j],end=" ")
print("",end="\n")
if __name__ == '__main__':
size = int(input("請輸入size的大小:"))
draw(size)