內容選單標籤

2019年11月27日 星期三

CH10 陣列 ( 數據類型資料 )


--------------------------------- 數據類型資料

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

012345
0JanFebMarAprMayJun
1123456


>>> 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  ------------





















沒有留言:

張貼留言