iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
自我挑戰組

Python 學習整理系列 第 9

Day9 list 串列的各種功能

  • 分享至 

  • xImage
  •  

重點:

  • 串列特性
    • 順序性
    • 可變性 mutable
  • 串列處理資料的方式

串列-順序性

用法:data[起始值:結束值:間隔值]

data = ['台灣', '中國', '日本', '韓國', '英國', '法國', '瑞士', '奧地利']

print('亞洲:', data[:4])
# 亞洲: ['台灣', '中國', '日本', '韓國']

print('歐洲:', data[4:])
# 歐洲: ['英國', '法國', '瑞士', '奧地利']

串列 - 內容數量、內容出現的次數

內容數量:len(data)
內容出現次數:data.count(內容)

  • 可利用len(data)計算data有幾個內容
  • 可利用 data.count()計算內容在 data 共有幾個
score = [90, 100, 50, 30, 75, 65, 90, 25, 90]

print(len(score))
# 9
print(score.count(90))
# 3
print(score.count(100))
# 1
score = [90, 100, 50, 30, 75, 65, 90, 25, 90, [90, 45, 60]]

print(len(score))
# 10
print(score.count(90))
# 3
print(score.count(100))
# 1

串列-可變性

  • 建立串列後,依然可以不斷修改串列裡的資料
shopping_cart = ['book', 'water', 'juice']

shopping_cart[1] = 'apple'

print(shopping_cart)
# ['book', 'apple', 'juice']
  • 字串是不可變性
string = 'Hello'

string[1] = 'a'
#TypeError: 'str' object does not support item assignment

串列-附加

用法 : data.append (內容)

  • 內容可以是各種資料形式,字串、整數、浮點數、布林值、串列、字典等
  • 會直接更改原有的串列
seven = ["秦國", "齊國", "燕國"]

seven.append('楚國')

seven.append(['魏國', '趙國', '韓國'])

print(seven)
# ['秦國', '齊國', '燕國', '楚國', ['魏國', '趙國', '韓國']]

串列-附加list的內容

用法:data.extend(data2)

  • 附加串列的內容會新增至原始串列的後方
  • 會直接更改原有的串列
asia = ['台灣', '日本', '韓國', '新加坡']

europe = ['英國', '法國', '德國', '比利時']

asia.extend(europe)

print(asia)
# ['台灣', '日本', '韓國', '新加坡', '英國', '法國', '德國', '比利時']
asia = ['台灣', '日本', '韓國', '新加坡']

europe = ['英國', '法國', '德國', '比利時']

database = asia + europe

print(database)
# ['台灣', '日本', '韓國', '新加坡', '英國', '法國', '德國', '比利時']

串列-增加資料到指定的位置

用法:data.insert(位置,內容)

  • 將內容插入至指定的位置
  • 位置後的內容往後順移一個位置
asia = ['台灣', '日本', '韓國', '新加坡']

europe = ['英國', '法國', '德國', '比利時']

database = asia + europe

database.insert(4, '歐洲國家')

print(database)
# ['台灣', '日本', '韓國', '新加坡', '歐洲國家', '英國', '法國', '德國', '比利時']

串列-移除內容

用法:data.remove(內容)

  • 若串列中有多個要刪除的內容,此指令只會刪除位置最前端的內容
score = [90, 100, 50, 90, 25, 75]

score.remove(75)

score.remove(90)

print(score)
# [100, 50, 90, 25]

串列-第二種移除內容的方法

用法:list.pop(位置)

  • 若無指定位置,程式會移除串列最後的內容
  • 此指令會回傳所移除的內容
countary_data = ['台灣', '日本', '韓國', '新加坡', '英國', '法國', '德國', '比利時']

last = countary_data.pop()

print(last, countary_data)
# 比利時 ['台灣', '日本', '韓國', '新加坡', '英國', '法國', '德國']

fourth_countary_data = countary_data.pop(3)

print(fourth_countary_data, countary_data)
# 新加坡 ['台灣', '日本', '韓國', '英國', '法國', '德國']

串列-顛倒順序、排序

倒序:data.reverse()
排列:data.sort()

  • data.reverse() 可反轉 data 裡的內容
  • data.sort()可排序 data裡的內容
score = [1, 3, 5, 8, 9, 4, 2]

score.reverse()

print(score)
# [2, 4, 9, 8, 5, 3, 1]
score.sort()

print(score)
# [1, 2, 3, 4, 5, 8, 9]
cart = ['juice', 'apple', 'lemon']

cart.sort()

print(cart)
# ['apple', 'juice', 'lemon']
# 字串用字母順序排列

串列-判斷內容是否存在串列中

用法:內容 in data

  • 指令會回傳布林值,若內容有在串列中回傳True,否則回傳False
score = [1, 3, 5, 8, 9, 4, 2]

print(15 in score)
# False
print(5 in score)
# True

說明 程式指令
以範圍取值 串列[起始值:結束值:間隔值]
內容數量 len(data)
內容出現次數 串列.count(內容)、串列.append(內容)
附加內容 串列.insert(索引值,內容)、data_1.extend(data_2) v.s. data_1 + data_2
移除data中的內容 串列.remove(內容)、串列.pop(索引值)
判斷資料是否存在串列中 物件in串列

參考資料
Yes


上一篇
Day8. list 串列(指定、複製)
下一篇
Day 10. if - else 條件判斷
系列文
Python 學習整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言