SlideShare una empresa de Scribd logo
1 de 28
06:串列操作
2018.1.30
財團法人中華民國電腦技能基金會 策劃 逢甲大學 林英志 老師 編著
大量資料
• 程式中的資料以變數儲存,如果有大量資料需要儲存,
需要宣告大量的變數。
• 例如:想要儲存全班同學的成績
2
串列(List)
• 串列(又稱為清單、列表),類似其他語言的陣列,其
功能與變數相類似,是提供儲存資料的記憶體空間。
• 每一個串列擁有一個名稱,做為識別該串列的標誌
3
score
元素
(element)
串列
4
66 88 77score
0 1 2
score[0] score[1] score[2]
索引
(index)
串列
• 串列的使用方式是將元素置於中括號 ([ ]) 中,元素之間
以逗號分隔,語法為:
• 串列名稱 = [元素1, 元素2, 元素3, …]
• e.g., score = [66, 88, 77]
5
串列
• 元素的資料型態可以不同
6
存取串列的元素
7
串列操作 – 取值
• list1 = [1, 2, 3, 4, 5, 6]
8
串列操作 – 串列屬性
• list1 = [1, 2, 3, 4, 5, 6]
9
n = sum(list1) 取得串列元素的和 n=sum(list1) n=21
串列操作 – 進階1
• list1 = [1, 2, 3, 4, 5, 6]; x = [8, 9]
10
串列操作 – 進階2
• list1 = [1, 2, 3, 4, 5, 6]; x = [8, 9]
11
增加串列元素
• 串列設定初始值後,要如何增加串列元素?
• list1 = [3, 5, 7]
• 直接用 list1[4] = 9 ???
12
增加串列元素的方法
13
insert()
append()
extend()
insert() vs append()
• insert() 方法是將元素加在串列的指定位置
• 注意索引值不能超過串列元素個數,否則會產生「索引超過範
圍」的錯誤
• append() 方法是將元素加在串列最後面
14
insert() vs append()
15
extend() vs append()
• 這兩個方法都是將資料加在串列最後面,不同處在於
• append() 方法的參數可以是元素,也可以是串列
• 如果是串列,會將整個串列當成一個元素加入串列
• extend() 方法的參數只可以是串列,不可以是元素
• extend() 方法會將串列中的元素做為個別元素逐一加入串列
16
extend() vs append()
17
pop()
• pop() 方法的功能是由串列中取出元素,同時移除該元素
• pop() 方法可以有參數,也可以沒有參數:
• 沒有參數  取出最後 1 個元素
• 有參數且為整數  取出以參數為索引值的元素
18
存取串列內容
• 要存取串列內部的元素,傳統上使用索引值
• 假設有一個串列叫做 lst,長度為 10,則它的所有元素為
lst[0], lst[1], lst[2], ..., lst[8], lst[9]
• Python 除了傳統的索引值外,提供了一個像瑞士小刀一樣的
東西叫分割(slice)
19
串列分割
• lst[m:n]  代表從第 m 個元素開始取,取到第 n-1 個元
素為止
• lst[m:]  從第 m 個元素開始取到最後
• lst[:n]  從開頭取到第 n-1 個元素
• lst[:]  全取
• lst[m:n:t]  從第 m 個到第 n-1 個元素,每隔 t 個取一次
20
範例
21
想想看
• 如何將串列以反轉的順序輸出?
• lst = [2, 3, 5, 2, 33, 21, 99]
• 如何將使用者輸入的字串以反轉的順序輸出?
22
+, *, in/not in 運算子
• 連結運算子(+)用來結合兩個字串
• 重複運算子(*)可複製串列的元素
• in/not in 可判斷某元素是否在串列中
23
追蹤串列元素
24
串列解析(List Comprehension)
• 串列解析提供一個簡潔方法建立一個循序串列
• 由中括號裡面包含 for 子句後接運算式所組成
• 可以零個或多個 for 或 if 子句
• 串列解析後將產生一個新串列
25
lst = [x for x in range(5)]
lst1 = [a for a in lst if a%2]
簡化程式碼
26
PY3-0002
四、數字反轉判斷
27
本章結束

Más contenido relacionado

La actualidad más candente

Template Meta Programming入門から応用まで
Template Meta Programming入門から応用までTemplate Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
yoshihikoozaki5
 
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
文化大學
 

La actualidad más candente (20)

Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章Tqc+程式語言Python-第0章
Tqc+程式語言Python-第0章
 
Pointer to array and structure
Pointer to array and structurePointer to array and structure
Pointer to array and structure
 
C programing -Structure
C programing -StructureC programing -Structure
C programing -Structure
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
深さ・幅優先探索の仕組み・特徴・応用
深さ・幅優先探索の仕組み・特徴・応用深さ・幅優先探索の仕組み・特徴・応用
深さ・幅優先探索の仕組み・特徴・応用
 
文字列アルゴリズム
文字列アルゴリズム文字列アルゴリズム
文字列アルゴリズム
 
Pointers and Structures
Pointers and StructuresPointers and Structures
Pointers and Structures
 
Data Types, Variables, and Operators
Data Types, Variables, and OperatorsData Types, Variables, and Operators
Data Types, Variables, and Operators
 
Криптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - CryptologyКриптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - Cryptology
 
Operators in java
Operators in javaOperators in java
Operators in java
 
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用までTemplate Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
 
this keyword in Java.pptx
this keyword in Java.pptxthis keyword in Java.pptx
this keyword in Java.pptx
 
Python Variable Types, List, Tuple, Dictionary
Python Variable Types, List, Tuple, DictionaryPython Variable Types, List, Tuple, Dictionary
Python Variable Types, List, Tuple, Dictionary
 
Unit 9. Structure and Unions
Unit 9. Structure and UnionsUnit 9. Structure and Unions
Unit 9. Structure and Unions
 
Enums in c
Enums in cEnums in c
Enums in c
 
database 13-14
database 13-14database 13-14
database 13-14
 
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
101.11.00 ttqs-教育訓練品質管理課程-詹翔霖教授-大葉企管碩士班
 
Unions
UnionsUnions
Unions
 
Rolling hash
Rolling hashRolling hash
Rolling hash
 
023 QC Stroy 簡報的準備 QC Story Presentation
023 QC Stroy 簡報的準備 QC Story Presentation023 QC Stroy 簡報的準備 QC Story Presentation
023 QC Stroy 簡報的準備 QC Story Presentation
 

Similar a TQC+ 程式語言 Python 06:串列操作

Excel使用技巧
Excel使用技巧Excel使用技巧
Excel使用技巧
npwzyl
 
第08章 查找(java版)
第08章  查找(java版)第08章  查找(java版)
第08章 查找(java版)
Yan Li
 

Similar a TQC+ 程式語言 Python 06:串列操作 (7)

MYSQL
MYSQLMYSQL
MYSQL
 
自動化資料準備供分析與視覺化應用 : 理論與實作 (automatic data preparation for data analyzing and v...
自動化資料準備供分析與視覺化應用 : 理論與實作 (automatic data preparation for data analyzing and v...自動化資料準備供分析與視覺化應用 : 理論與實作 (automatic data preparation for data analyzing and v...
自動化資料準備供分析與視覺化應用 : 理論與實作 (automatic data preparation for data analyzing and v...
 
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
 
Excel使用技巧
Excel使用技巧Excel使用技巧
Excel使用技巧
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
 
第08章 查找(java版)
第08章  查找(java版)第08章  查找(java版)
第08章 查找(java版)
 
MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析
 

Más de neochen2701 (8)

20190923-吳恒毅-精準描述
20190923-吳恒毅-精準描述20190923-吳恒毅-精準描述
20190923-吳恒毅-精準描述
 
201909-1-龔文儀-溝通-觀察
201909-1-龔文儀-溝通-觀察201909-1-龔文儀-溝通-觀察
201909-1-龔文儀-溝通-觀察
 
20191028 -successful cases
20191028 -successful cases20191028 -successful cases
20191028 -successful cases
 
20191021-沈芳玟-影片分鏡稿案例分享
20191021-沈芳玟-影片分鏡稿案例分享20191021-沈芳玟-影片分鏡稿案例分享
20191021-沈芳玟-影片分鏡稿案例分享
 
20191014-林金祥-UIUX
20191014-林金祥-UIUX20191014-林金祥-UIUX
20191014-林金祥-UIUX
 
20190916-高玉璁-角色與溝通技巧工具
20190916-高玉璁-角色與溝通技巧工具20190916-高玉璁-角色與溝通技巧工具
20190916-高玉璁-角色與溝通技巧工具
 
201909-3-葉佩蓉-溝通-書寫
201909-3-葉佩蓉-溝通-書寫201909-3-葉佩蓉-溝通-書寫
201909-3-葉佩蓉-溝通-書寫
 
201909-2-林孟穎-溝通-聆聽
201909-2-林孟穎-溝通-聆聽201909-2-林孟穎-溝通-聆聽
201909-2-林孟穎-溝通-聆聽
 

TQC+ 程式語言 Python 06:串列操作