iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
AI & Data

跟我一起在AI的世界裡打怪獸系列 第 14

Day14 python語法(再中)-字符串、列表、字典、元組

  • 分享至 

  • xImage
  •  

字符串、列表、字典、元組

這四個都是「容器」的一種,所以蠻容易搞混的,今天的目標是聽完之後可以分辨它們的不同。

如果記不起來也沒關係啦,文章在這,再回來翻就行。

統整表格

字符串 列表 字典 元組
表示 單引號 '' 或雙引號 "" 中括號 [ ] 大括號 { } 圓括號 ( )
可變性(創建後可否更改) 不可變 可變 可變 不可變
組成 由字符組成 一系列元素 一系列的鍵值對(key-value pairs) 一系列的元素組成
分隔 元素間用逗號 , 鍵間用冒號 : 值間用逗號 , 元素間用逗號 ,
示例 'Hello' [1, 2, 3, 'hello'] {'name': 'John', 'age': 30} (1, 2, 3, 'world')

字符串(string)

由字符組成,可以用單引號 '' 或雙引號 "" 包裹。

  • 可以用while / for遍歷(Traversal),一個接一個檢視字符串到結束。
  • 不可變,一旦創建了之後,內容就無法修改。

字符串示例

f="abcdefg"

找出特定位置的字符

要記得,python是從0開始數,不是從1哦!

所以下面這行的結果會返回的是”abcdefg”中的”b”,不是"a”。

f="abcdefg"

f[1]  # 返回是b

用切片抓出特定的字符 / 字串

從x切到y的語法是[x:y],要注意的是y實際不會切進去!

所以下面這行的結果實際返回的會是0~4,”abcde”。

f="abcdefg"

print(f[0:5])

# 如果要從開始切到某一個數字,前面那格可以直接空著,比如:
f[:5]  # 返回是abcde

# 同理,想從某位切到最後,後面那格也可以空著:
f[3:]  # 返回是defg

用in看某些字符是不是在字串裡

f="abcdefg"

'd'in f  # 因為字符串f裡有'd'這個字符,所以會返回Ture
'y'in f  # 裡面沒有'y'這個字符,所以會返回False

不可變

因為不可變,所以如果要變化,只能另開一個新的字符串

f="abcdefg"

# 直接改變內容的方法會出現錯誤(下列是將第0位改成c)
f[0]=c

# 需要另外開一個字串,下列是新創一個字符串容器,先放c,再加上f從第1位(不是第0位歐)到最後
nf='c'+f[1:]

字符串轉換成列表

f="abcdefg"
n="You Are"

# 第一種,list()
t=list(f)  #  結果返回['a','b','c','d','e','f','g'],這就是一個列表

# 第二種,split()
y=split(n)  #  結果返回['You','Are'],這也是一個列表

列表(List)

列表是由一系列元素組成的,用方括號 [] 包裹,元素之間用逗號 , 分隔。

  • 可以用while、for遍歷
  • 可以查找、用[x:y]切片(參上面的字符串)
  • 可以包含不同型別的元素
  • 可以添加、刪除和修改列表中的元素
  • 提供了許多內建的方法和函數來操作和處理列表,函數如長度len()、最大max()、最小min()、加總sum()……

列表示例與基本操作方法:

t=[1,2,3,4,5,'hello]
t2=[6,7,8,9]
t3=[2,4,3,5,6,7,2,4,7]

# 加到後面
t.append('d') # 會返回[1, 2, 3, 4, 5, 'hello', 'd']

# 加列表到後面
t.extend(t2)  # 會返回[1, 2, 3, 4, 5, 'hello', 6, 7, 8, 9]

# 將列表元素從低到高排列
t.sort(t3)    # 會返回[2, 2, 3, 4, 4, 5, 6, 7, 7]

# 函數方法
sum(t3)   # 會返回40

字典(Dictionaries)

字典是由一系列的鍵值對(key-value pairs)組成的,用花括號 {} 包裹,每對鍵值之間用冒號 : 分隔,鍵值對之間用逗號 , 分隔。

  • 可以添加、刪除和修改字典中的鍵值對。
  • 鍵必須是唯一的,值可以重複。
  • 提供了快速查找的能力。
  • 適合用在電影分類等,比如movie = {'name':'阿凡達', 'year':2009, ……}

字典示例與操作方法:

# 字典的基本組成
{鍵(key):值(value),鍵:值,……}

# 創建字典
en=dict()

# 加入數值
en['one']='uno'   # 會返回{'one': 'uno'}

# 以鍵快速查找值
print(en['one'])  # 會返回'uno'

因為像len()、in這種函數和方法,只會算「鍵」,所以如果要算值要先經過轉換

en=dict()
en['one']='uno'
en['two']='yeah'

# in只會看鍵
'one'in en  # 會返回Ture
'uno'in en  # 會返回False

# 轉換
e=list(en.values())  # 會返回['uno', 'yeah'],這時候用in找'uno'就會是Ture了

元組(Tuples)

元組是由一系列的元素組成的,用圓括號 () 包裹,元素之間用逗號 , 分隔。

  • 一旦創建,內容無法被更改。
  • 具有唯一性,可以用作字典的鍵,也可以用作集合(set)的元素。
  • 如果 tuple 裡只有一個元素,最後方必須加上「逗號」(多個元素就不用)
  • 較列表優點:讀取速度快、佔用空間較少。

元組示例:

# 只有一個元素,最後面要加逗號
t=('a',)

# 多個元素就不用
y=(1, 2, 3, 'world')

# 將列表轉換成元組
x = ['one','two','three','four']
y = tuple(x)  # 會返回('one', 'two', 'three', 'four')

讀取變數:

y=('one', 'two', 'three', 'four')

# 第一種,用位置
print(y[0]) # 返回'one'

# 第二種,賦予變數(tuple可以一次賦予多個變數內容)
a,b,c,d=y   # 一次賦予變數,記得元組、變數數量要等同
print(a)    # 返回'one'

總結

今天就先介紹到這邊,如果有什麼沒注意到或可以補的,請各位再提出來。

因為整理到後面自己都有點暈惹@@


上一篇
Day13 python語法(中)-導入函式庫
下一篇
Day15 python語法(下)-語句(if、while、for)、定義函式(def)
系列文
跟我一起在AI的世界裡打怪獸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言