--------------------------------- 數據類型資料
Python 將一般的陣列變數轉換為容器,容器中有:
串列 List
元組 Tuple
字典 Dictionary
集合 Set
------------ 10.1 串列 List ------------
>>> list1=[2,4,6,8,10]
>>> print(list1)
[2, 4, 6, 8, 10]
>>> for i in range(5):
print(list1[i],end=' ')
2 4 6 8 10
>>> x=range(5)
>>> type(x)
<class 'range'>
# range 其實也是一個串列 range(start, end, step)
>>> for i in list1:
print(i,end=' ')
2 4 6 8 10
>>> C=[3,4]
>>> D=[5,6]
>>> E=C+D
>>> print(E)
[3, 4, 5, 6]
>>> E=E+E
>>> print(E)
[3, 4, 5, 6, 3, 4, 5, 6]
>>> E=2*C
>>> print(E)
[3, 4, 3, 4]
>>> e=21
>>> print(e) #變數名稱大小寫 是不同
21
>>> print(E)
[3, 4, 3, 4]
>>> list01=[]
>>> for i in range(1,10+1):
list01.append(i)
>>> print(list01)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
----- 10.1.1 串列宣告
串列元素類別可以是整數、字串、布林值...
list01=[2,4,6,8,10]
list02=["星期日","星期一","星期二"]
list03=[True, 1, 3.14, "abc"]
----- 10.1.2 空串列
還不知串列元素有多少個
list01=[ ]
----- 10.1.3 一維串列
>>> colors=['red','blue','green','yellow']
>>> for i in colors:
print(i, end=' ')
red blue green yellow
>>> list02=['a','b','c','d','e','f']
>>> for i in range(6):
print(list02[i],end=' ')
a b c d e f
>>> nums=[1,2,3,4,5,6]
>>> for i in nums:
print(i,end=' ')
1 2 3 4 5 6
----- 10.1.4 二維串列
>>> list06=[('Jan',1),('Feb',2),('Mar',3),('Apr',4),('May',5),('Jun',6)]
>>> print(list06[0][0],list06[0][1],list06[3][0],list06[3][1])
Jan 1 Apr 4
0 | 1 | 2 | 3 | 4 | 5 | |
0 | Jan | Feb | Mar | Apr | May | Jun |
1 | 1 | 2 | 3 | 4 | 5 | 6 |
>>> for i in range(2):
for j in range(6):
print(list06[j][i],end=' ')
print()
Jan Feb Mar Apr May Jun
1 2 3 4 5 6
二維串列:產生、設定、呼叫
>>> p=[['']*5 for i in range(10)]
>>> for i in range(10):
for j in range(5):
p[i][j]=str(i)+','+str(j)
>>> for i in range(10):
for j in range(5):
print(p[i][j],end=' ')
print()
0,0 0,1 0,2 0,3 0,4
1,0 1,1 1,2 1,3 1,4
2,0 2,1 2,2 2,3 2,4
3,0 3,1 3,2 3,3 3,4
4,0 4,1 4,2 4,3 4,4
5,0 5,1 5,2 5,3 5,4
6,0 6,1 6,2 6,3 6,4
7,0 7,1 7,2 7,3 7,4
8,0 8,1 8,2 8,3 8,4
9,0 9,1 9,2 9,3 9,4
----- 10.1.5 串列搜尋 index()
>>> IList=[123,'xyz','456','abc']
>>> print("index for xyz :",IList.index('xyz'))
index for xyz : 1
>>> print("index for zara :",IList.index('456'))
index for zara : 2
----- 10.1.6 串列計算 count()
>>> list01=[123,'xyz','456','abc',123]
>>> print("count for 123 :",list01.count(123))
count for 123 : 2
>>> print("count for 456 :",list01.count('456'))
count for 456 : 1
----- 10.1.7 串列新增元素 append()
>>> list02=[123,'xyz','456','abc']
>>> list02.append(2019);
>>> print("list02=",list02)
list02= [123, 'xyz', '456', 'abc', 2019]
----- 10.1.8 串列插入元素 insert()
>>> list03=[123,'xyz','456','abc']
>>> list03.insert(3,2019)
>>> print("list03:",list03)
list03: [123, 'xyz', '456', 2019, 'abc']
----- 10.1.9 串列移除元素 remove()
>>> list04= [123, 'xyz', '456', 'abc', 'xyz']
>>> list04.remove('xyz')
>>> print("list04:",list04)
list04: [123, '456', 'abc', 'xyz'] #移除列表中第一個匹配項
>>> list04.remove('abc')
>>> print("list04:",list04)
list04: [123, '456', 'xyz']
----- 10.1.10 串列排序
>>> List=["星期0","星期2","星期1","星期3","星期4"]
>>> List.sort()
>>> print("List:",List)
List: ['星期0', '星期1', '星期2', '星期3', '星期4']
----- 10.1.11 串列反轉排序
>>> List=["星期0","星期2","星期1","星期3","星期4"]
>>> List.sort(reverse=True) #reverse=True 降冪 reverse=False 升冪 (內定)
>>> print("List:",List)
List: ['星期4', '星期3', '星期2', '星期1', '星期0']
----- 10.1.12 串列綜合表達法 comprehension
>>> list00=[0,1,2,3,4,5,6,7,8,9]
>>> print(list00)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list01=[str(x) for x in list00]
>>> print(list01)
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> print(" ".join(list01))
0 1 2 3 4 5 6 7 8 9 #最後沒有空白
>>> for i in list01:
print(i,end=' ')
0 1 2 3 4 5 6 7 8 9 #最後有一個空白
----- 10.1.13 字串串列轉數值串列
>>> listA=['1','2','3']
>>> listB=list(map(int,listA))
>>> print(listB)
[1, 2, 3]
>>> list03='1 10 100 1000 10000 10000'
>>> print(list03)
1 10 100 1000 10000 10000
>>> list04=list(map(int,list03.split()))
>>> print(list04)
[1, 10, 100, 1000, 10000, 10000]
重點:
- 文字字串 轉成 數值串列
- 數值串列 轉成 文字字串
- 文字字串 轉成 文字串列
- 文字串列 轉成 文字字串
- 字串前後空白去除
>>> list01=[1,2,3,4]
>>> list02=[3,4,5,6]
>>> len(list01)
4
>>> listA=list(map(int,['1','2','3','4'])) #字元轉成整數
>>> print(listA)
[1, 2, 3, 4]
>>> max(list01)
4
>>> max(list02)
6
>>> min(list01)
1
>>> min(list02)
3
>>> tupe=(6,7,8) #元素轉成串列 Tuple 轉 List
>>> list(tupe)
[6, 7, 8]
>>> list03=[6,5,4,3,2,1]
>>> listA=list03[1:3] #取出 n1~n2-1 的元素
>>> print(listA)
[5, 4]
>>> listB=list03[0:5:2] #取出 n1~n2-1 的元素,間隔n3
>>> print(listB)
[6, 4, 2]
>>> del list03[1:3]
>>> print(list03)
[6, 3, 2, 1]
>>> list03.append(7)
>>> print(list03)
[6, 3, 2, 1, 7]
>>> n=list03.count(7) #某元素在列表中出現的次數
>>> print(n)
1
>>> m=len(list03)
>>> print(m)
5
>>> list03.insert(1,7)
>>> print(list03)
[6, 7, 3, 2, 1, 7]
>>> s1='375'
>>> list06=list(s1) #字串轉列表
>>> print(list06)
['3', '7', '5']
>>> print(list03)
[6, 7, 3, 2, 1, 7]
>>> n=list03.pop() #預設移除最後一個元素
>>> print(n)
7
>>> print(list03)
[6, 7, 3, 2, 1]
>>> print(list03)
[6, 7, 3, 2, 1]
>>> list03.remove(3) #移除列表中某個值得第一個匹配項
>>> print(list03)
[6, 7, 2, 1]
>>> print(list03)
[6, 7, 2, 1]
>>> list03.reverse()
>>> print(list03)
[1, 2, 7, 6]
>>> list03=[7,2,1,6]
>>> list03.sort()
>>> print(list03)
[1, 2, 6, 7]
------------ 10.2 ------------
------------ 10.3 ------------
------------ 10.4 ------------