iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 1
0
Software Development

從0開始學習程式-Python系列 第 2

[Day5]Python也有櫃子?


不知道大家吃飽睡飽嗎?一個禮拜就這樣來到Happy Friday!
但是鐵人的學習是不能停下來啊啊!
我們今天來介紹一個好用的變數型態!

櫃子!?


對你迷有看錯捏~你給我看這個?中午時間餓到可以把櫃子給吃了
冷靜想一下!這排櫃子的每個位置都是一個置放空間,想放什麼就放啥!藏書、藏禮物藏私房錢隨你開心!

但我們平常時會怎麼敘述要拿取櫃子裡面的東西呢?

「右邊數來第2個櫃子」...這一類的敘述應該很常出現吧!
But!But!如果有100,1000個櫃子...那要怎麼數?
這時候為了精準描述我們要拿的位置,會直接給每個櫃位編號!比如由左到右依序為1,2,3....。
☞這就是所謂的List

來關注下面這個List吧!


看起來應該更清楚明瞭List吧!
我們在這個綠色的櫃子,每一個位置我們叫做他是一個元素(element),裡面可以存放一個value,value是什麼型態都可以,而每一個位置都會有一個編號(index)。

要特別注意!編號是從0開始!編號是從0開始!編號是從0開始!

常見的List操作指令

假設有list L1:

L1[index]:尋找L1中index位置存放的值
L1.index(value):尋找value在L1中2第一個位置的index
L1.append(value):在現有的L1中,最後一個位置後面新增一個位置並指定為value
L1.remove(value):在現有的L1中,遇到第一次value時,將其移除
L1.pop(index):將L1中index位置的value拿掉
del(L1[index]):將L1中index位置的value拿掉
L1.count(value):統計value在L1中出現幾次
len(L1):L1中有多少個value

讓我來舉個例子吧!

L=[0]*2 
#output:L=[0,0]
L.append(3) 
#output:L=[0,0,3]
K=[0,0,3,4,1,2]
K.pop(4) 
#output:L=[0,0,3,4,2]
K.count('3') 
#output:0
del(L[2]) 
#output:L=[0,0,4,2]

看到這裡你應該覺得list操作其實不難嘛!!

進擊吧!List!

(三)(小)?還有啊?
當然啊~還有一些特殊的規則囉!

  1. list若從後面往前數的話,index則從-1,-2....依序排列,如下圖紅字標示
L=[3,4,5,7,8,9] 
L[-3] #output:7
  1. list.pop()視為最後一項被移除,和list.pop(-1)效果相同
L=[3,4,5,7,8,9] 
L.pop() #output:L=[3,4,5,7,8]
  1. L[i:k:step]從i到k-1的element,以step為間距,因此若沒填入數字則是忽略
L=[1,5,2,7,8,4] 
L[1:4] #output:[5,2,7]
L[1:] #output:[5,2,7,8,4]
L[1::] #output:[5,2,7,8,4]
L[:4] #output:[1,5,2,7] 
L[::4] #output:[1,8] 
  1. range(start,end,step)可以從start到end之前(不包含end),以step為間隔的整數數列,用在迴圈迭代使用,但他並不是list,range()就是個物件<class 'range'>
    註:若要讓range(start,end,step)成為list,可以使用list(range(start,end,step))作為使用

好啦~我開始肚子餓了!再不吃飯我就要把電腦吃掉了QQ,老樣子來思考一個比較間單的問題:
Q. 現在有一個陣列[5, 3, 4, 9, (3,5), ['I', 'T', 'iron'], 'man']請問這裡面有幾個element?
若取出element只有數字的部分,接著把最後一個和第二個數字交換,則這一個只有數字的list為何?

昨天的參考答案在這裡,你對了嗎?

感謝froce大大的更正,還有不對的地方麻煩大家幫忙了


上一篇
[Day4] 基本變數有搞頭嗎?
下一篇
[Day 6] python 陣列和字串都幾?
系列文
從0開始學習程式-Python32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Cheng®
iT邦新手 2 級 ‧ 2020-10-06 10:25:59

K=[0,0,3,4,1,2]
K.pop(4)
#output:L=[0,0,3,4,2]

這裡output打錯了嗎? 應該是K

我要留言

立即登入留言