# Python常見資料類型與方法 [TOC] ### 1. 字串string ```pythoin= tel = '06-2371206' ext = '#600' ``` |運算子|描述|範例|結果| | -------- | -------- | -------- |-------- | |+ |字串連接|tel + ext|'06-2371206#600'| |* |字串重覆輸出|ext * 2| '#600#600'| |[index]|字串中索引值所在字元| tel[5] |'7' | [起點 : 終點 : step] |截取部分字串|tel[1:4]、tel[6: ]、tel[ :6]、tel[::-1]|'6-2'、'1206'、'06-237'、'6021732-60'| |in|成員運算子 註:時間可能較慢|'9' in tel|False| ```pythoin= name1 = 'DAVID' name2 = 'david' ``` 字串函式|描述|範例|結果 | -------- | -------- | -------- |-------- | len(<str>)|計算字串長度|len(name1)|5 <str>.lower( )|字串轉小寫|name1.lower()|'david' <str>.upper( )|字串轉大寫|name2.upper()|'DAVID' <str>.islower( )|字串中英文全小寫|name1.isupper()|False <str>.isupper( )|字串中英文全大寫|name1.isupper()|True ```python= name = 'DAVID 321' ``` | 字串函式|描述|範例|結果| | -------- | -------- | -------- |-------- | |<str>.find(<str1>)|在<str>尋找<str1>,回傳索引值;若未找到,回傳-1|name.find(‘FSH’)|2| |<str>.replace(<str1>,<str2>)|將<str>中的<str1>以<str2>取代|name.replace(‘FSH’,‘GS’)|'TNGS 109'| |<str>.split([sep])|字串以sep分割,sep預設值為空白,分割完為表列list|name.split()|['TNFSH','109']| ### 2. 表列 list ```python= list1 = [ 'March', 'May', 'November' ] list2 = [ '3', '5', '11'] ``` |運算子|描述|範例|結果| | -------- | -------- | -------- |-------- | |+ |列表連接|list1 + list2|['March', 'May', 'November', '3', '5', '11']| |* |列表重覆輸出|list2 * 2| ['3', '5', '11', '3', '5', '11']| |[index]|串列中索引值所在字元| list1[2] |'November' | [起點 : 終點 : step] |截取部分串列|list1[:2]|[ 'March', 'May']| |in|成員運算子 註:時間可能較慢|'3' in list2|True| | 函式|描述|範例|結果| | -------- | -------- | -------- |-------- | |len(<list>)|計算表列元素個數|len(data)|4| |list(<str>)|將<str>轉成表列|list('ziyu')|['Z','I','Y','U']| |<list>.clear( )|清除表列中所有元素|data.clear()|[]| ```python= data = [ 'David', [95, 118], 'ZiYu', 100 ] data1 = [89, 119] ``` | 方法|描述|範例|結果| | -------- | -------- | -------- |-------- | |<list>.append(<obj>)|將<obj>加到<list>尾端|data.append(35)|[ 'david', [95, 118], 'ZiYu', 100, 35 ]| |<list>.extend(<list1>)|將<list1>合併至<list>尾端|data.extend(data1)|[ 'David', [95, 118],'ZiYu',100,89,119 ]| |<list>.remove(<obj>)|移除<list>中<obj>元素|data.remove('ZiYu')|[ 'David', [95, 118], 100 ]| |<list>.insert(<j>,<obj>)|將<obj>加到<list>的索引值<i>位置|data.insert(1, 35)|[ 'David', 35, [95,118], 'ZiYu', 100 ]| |<list>.pop( [index])|從<list>取出指定元素,若[index]未指定,則取出尾端元素|print(data.pop(1))|[95,118]| |<list>.reverse( )|反轉表列元素|data.reverse() print(data)|[100, 'ZiYu', [95, 118] 'David']| ```python= data_s = [ 'David', 'ZiYu', 'Arch' ] data_n = [89, 119, 55] ``` | 函式|描述|範例|結果| | -------- | -------- | -------- |-------- | | '[sep]'.join( <list>)|用[sep]來連結表列元素,若未指定[sep],則無間隔,註:僅限表列元素皆為字串|'_'.join(data_s) ''.join(data_s) ' '.join(data_s)|David_ZiYu_Arch DavidZiYuArch David ZiYu Arch| |sum(<list>)|將表列中所有元素加總,註:僅限表列元素皆為數字|sum(data_n)|263| |<list>.sort( )|將表列中所有元素排序|data_s.sort()|['Arch', 'David', 'ZiYu']| ![](https://i.imgur.com/PrTcHTI.png) ### 3. 元組 tuple * 資料格式:以( )將不同型態的資料含括起來,以 , 分隔(元組中的資料是有序排列,從0開始編號) * 格式:元組名稱 = (元素1, 元素2, … ) * 與表列list類似,但元組tuple內的元素不能修改 ```python= data = ( 'David', [95, 118], 'ZiYu', 100 ) print(data[1]) #輸出[95, 118] ``` * 特列:tup1 = (53, ) ,只有一個元素時,其後要加逗號 ### 4. 字典 dict * 資料格式:以{ }將各組鍵:值對應資料含括起來,以 , 分隔(字典中的資料是無序的) * 註:若字典中有相同的key,則會取出最後的value ```python= data = { 'David': 95, 'ZiYu': 100 } ``` | 字典操作|語法範例|data內容| | -------- | -------- | -------- | |新增|data['Cat'] = 88|{ 'David':95, 'ZiYu':100, 'Cat':88 }| |修改|data['David'] = 88|{ 'David':88, 'ZiYu':100 }| |刪除(鍵值對)|del data['David']|{ 'ZiYu':100 }| |刪除(字典)| del data |#刪除整個字典| ```python= data = { 'David': 95, 'ZiYu': 100, 'David': 105 } ``` | 字典方法|語法範例|執行結果| | -------- | -------- | -------- | |<dict>.clear()|data.clear()|{ }| |<dict>.copy()|data1=data.copy() print(data1)|{ 'David':105,'ZiYu':100 }| |<dict>.get(key,default=None)|print(data.get('Cat')) print(data['Cat'])|None| |<dict>.items()|print(data.items())|dict_items([ ('David': 95), ('ZiYu': 100), ('David': 105) ]) |<dict>.keys()|print(data.keys())|dict_keys(['David','ZiYu', 'David' ]) |<dict>.values()|print(data.values())|data_values[ 95, 100, 105 ]| ### 5. 集合 set * 資料格式:以{ }將各組資料含括起來,以 , 分隔(集合中的資料是無序的,會自動刪除重複元素) ```python= S1 = { 'David', 95, 'ZIYU', 100 } ``` | 集合操作|語法範例|data內容| | -------- | -------- | -------- | |新增|S1.add(119) print(S1)|{ 'David', 95, 'ZIYU', 100 ,119}| |移除|S1.remove(100) print(S1)|{ 'David', 95, 'ZIYU'}|