講師你好: list 在python要實現多維陣列是否會採用以下方式,達成同樣效果 例如: int a[2][3] = {{0}, {0}} // 宣告一個二維陣列 Python: a = [[0] * 3] * 2 或者是 a = [[0] * 3 for _ in range(2)] 還是不建議這樣實現多維陣列
@@cwpeng-course 老師您好,也有相同的問題一。想問錯誤訊息說"grades[0, 1, 4]無法用,是因為被視作tuple",而前一課中,印字串中指定編號可以這樣寫,是因為一開始變數指定它是字串,所以print時不會誤認這樣嗎? 另針對這個list indices must be integers or slices詢問兩種差異,我試了list中存數字、字串,並分別用[?]、[?:?]替換寫後,有以下想法,想問一下這個理解是否有誤? 列出清單中間隔的特定編號資料的寫法: #正解:"取出"以[?:?]表示的slice片段後,用+連接。 PS對數字或字串都可行,取出性質為可包含兩者的list(會將取出的各個資料用,隔開)。 #另解:如果直接用[?]integer取單個,會判斷成數字或單一字串,進行加法或字串串聯成單一結果(數字或字串)。 *故因為 得出的資料類型不同,所以slice和integer取出的無法用+運算。
澎澎老師請問,這部影片開頭我試著第一步的印,結果變成PS C:\Users\user\python training> python list.tuple.py C:\Users\user\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\user\python training\list.tuple.py': [Errno 2] No such file or directory
彭彭老師好 最近新手上路 一天看一集 昨天使用VScode 執行時都還正常 但今天要執行時 跑出 Suggestion [3,General]: The command data.py was not found, but does exist in the current location. PowerShell does not load commands from the current location by default. If you trust this command, instead type: ".\data.py". See "get-help about_Command_Precedence" for more details. 我有爬了文章 使用set-executionpolicy remotesigned 並執行最高權限 但依然無效 照上面所說的改用 .\data.py 執行 卻沒有跑出任何東西(確認內容都寫對) 想問是發生甚麼事情了嗎?
# 有序可變動列表 List
grades=[12,60,25,70,90]
print(grades)
print(grades[0])
print(grades[3])
print(grades[1:4])
grades=[12,60,25,70,90]
grades[0]=55 # 把 55 放到列表中的第一個位置
print(grades)
grades=[12,60,25,70,90]
grades[1:4]=[] # 連續刪除列表中從編號 1 到編號 4(不包括) 的資料
print(grades)
grades=[12,60,25,70,90]
grades=grades+[12,33]
print(grades)
grades=[12,60,25,70,90] # 取得列表的長度 len(列表資料)
length=len(grades)
print(length)
data=[[3,4,5],[6,7,8]]
print(data[0])
print(data[0][1])
print(data[0][0:2])
print(data)
data[0][0:2]=[5,5,5]
print(data)
# 有序不可變動列表 Tuple
data=(3,4,5)
# data[0]=5 # 錯誤︰Tuple的資料不可以變動
print(data[2])
print(data[0:2])
這麼淺顯易懂的教學方式應該讓老師中威力彩才對
可惜沒中 QQ
感謝彭彭老師無私的教學!! 以下做作為學習筆記
### 有序可變動的列表(List)
## 索引的基本運用
grades=[12,60,15,70,90] # 使用中括號[ ]
print(grades)
print(grades[0]) # 跟字串一樣. 進行索引的動作
# 更新列表內容
grades[0]=55 # 把 55 放到列表中第一的位置
print(grades)
## 取得列表中特定的資料
print(grades[1:4])
# 刪除列表選定的資料
grades[1:4]=[ ] # 特地連續刪除從編號 1 到編號 4(不包括)之前的資料
print(grades)
## 列表的串接
grades=grades+[12,33] # 使用 加號(+) 做簡單的串接
print(grades)
## 取得列表的數字長度
length=len(grades) # 列表長度(length)=len(列表資料)
print(length)
print(len(grades)) # 可作為另一個簡單的公式
## 巢狀列表
data=[[3,4,5],[6,7,8]]
print(data[0][1])
# 最終打印是按照順序. 第一個數字(0) 是代表第一層的第一元素[3,4,5]. 第二個數字(1) 是代表第二層的第二元素[4]
print(data[0][0:2]) # 打印出選取特定的資料
data[0][0:2]=[5,5,5] # 指定原本資料. 更換成新的資料
print(data)
### 有序不可變動的列表(Tuple)
data=(3,4,5) # 使用括號 ( )
print(data[2])
print(data[0:2])
# 以上都跟 list 一樣可以用索引. 與選定資料
data[0]=5 # 錯誤公式: tuple的資料不能做更動
print(data)
00:00介紹
00:32List講解
01:18Tuple講解
01:52實作環節
有序可變動列表 List:
02:06建立列表示範
03:08索引基本運用::取得列表中的資料
04:10索引基本運用:更新列表中的資料
05:26索引基本運用:取得列表中特定範圍的資料
06:20連續資料處理: 連續刪除表中的資料
07:43連續資料處理: 串接連續表中的資料
08:51取得列表的長度:len(列表)
10:26巢狀列表: 列表中的資料也是列表
11:57巢狀列表:取得特定範圍、更新列表中的資料列表 用法
有序不可變動列表 Tuple:
13:53資料不可更動:操作與List相同,但資料不可更動
以上是個人解讀,如內容有錯請見諒,謝謝。
感謝你的整理 :)
謝謝彭彭老師,第一次是先看你的影片教學,後來回去看書看到書中這部份真的超想睡覺
不會呦,一開始總是有些無聊的東西,辛苦啦 XDDD
@@cwpeng-course 謝謝老師回覆,抱歉之前沒回來看到留言
# 有序列可變動列表 List 用中括號 []
grades=[12,60,15,70,90]
print(grades)
# 加上索引
print(grades[0])
# 更新資料
grades[0]=55 #把 55 放到列表中的第一個位置
print(grades[0])
print(grades)
print(grades[1:4])
# 刪除資料
grades[1:4]=[] # 連續刪除列表中從編號 1 到編號 4(不包括4) 的資料
print(grades)
# 列表串接
grades=[12,60,15,70,90]
grades=grades+[12,33]
print(grades)
# 列表長度
grades=[12,60,15,70,90]
length=len(grades) # 取得列表的長度 len(列表資料)
print(length)
# 槽狀列表
data=[[3,4,5],[6,7,8]]
print([data])
print([data[0]])
print([data[0][0]])
print([data[0][1]])
print([data[0][0:2]])
data[0][0:2]=[5,5,5]
print([data])
# 有序不可變動列表 Tuple 用小括號 ()
data=(3,4,5)
print(data[2])
print(data[0:2])
data=(3,4,5)
data[0]=5 # 錯誤 Tuple 的資料不可以變動
print(data)
感謝紀錄 :)
感謝彭彭老師的無私分享🙏🏻
身為從沒碰過程式語言的人
這系列影片真的很棒
清晰簡單明瞭
謝謝你的回饋,加油加油 :)
谢谢彭彭老师的精彩课程,深入浅出超容易懂!
很高兴对你有帮助,也谢谢你的回馈呦 :)
非常謝謝您花這麼多時間分享. 受益良多!
謝謝你的回饋呦,有幫助就好 :)
好期待你可以開一些python 機器學習或是python結合生物訊息處理相關的課程
好哦,謝謝你的建議,我會盡量 ~~~~
+1
很詳細的教學 滿滿收穫
很高興對你有幫助 :)
謝謝老師深入淺出的教學!
不客氣,希望對你有幫助 :)
感謝老師 我會再多練習使知識更加熟悉
不會呦,加油加油!
說明簡單明瞭,感謝無私分享
:)
謝謝彭彭老師詳細解說分享!
谢谢彭彭老师~ 课程真的非常棒,祝您万事顺意哇!
谢谢你的回馈和鼓励 :)
謝謝作者的製作。
:)
老師 你讓我在python當中找到希望了
加油加油 :)
a=[1,2,3,4]
b=[1,2]
print(list(set(a)-set(b)))
print(list(set(a)+set(b)))
請問為什麼只能相減但不能相加~~
另外很謝謝你的影片,雖然已經好幾年了但對我還是很有幫助!!!!!!
這是因為在Python中,list和set是不同的資料結構。list是一個有序的資料結構,可以包含重複的元素,而set是一個無序的資料結構,不允許重複的元素。當我們使用set(a)-set(b)時,Python會將a和b轉換為set,然後計算它們的差集,最後將結果轉換回list。而當我們使用set(a)+set(b)時,Python會將a和b轉換為set,然後計算它們的聯集,最後將結果轉換回list。但是,由於set是無序的,因此不能保證聯集的順序與list相同
感謝 @jethro530 的詳細說明,超讚的 ~
打卡打卡🙋🏻謝謝老師!
哈嘍哈嘍 ~~
彭彭老師,想請問一下我照著你的步驟打程式,print(grades)都沒有跑出寫好的內容,請問是有什麼應該下載或寫入的我沒有操作嗎?我跟著你的影片上了1,2,3堂課(第2堂課的print開始就沒出現東西惹>
首先要記得先儲存檔案,第二可以試著重新安裝 Python 引擎,然後重新啟動電腦再試試看 ~
感谢彭彭老师的讲解,python小白学习打卡XD
不客气呦,也谢谢你的回馈 :)))))
@@cwpeng-course 老師還換過字體好貼心❤
list 跟 tuple
list 的data可以變動
tuple的data不可以變動
The data of the list can be changed
The data of tuple cannot be changed
這點很重要
請問老師巢狀列表中,怎麼取得 data=[[3,4,5],[6,7,8]] 第二個子列表的字元,例如當中的7?
謝謝老師詳細的課程教授!
12分11秒 第四行的date[0][1]改[1][1]
感謝 @user-dv4wm6tc6i 解答 ~
講師你好:
list 在python要實現多維陣列是否會採用以下方式,達成同樣效果
例如: int a[2][3] = {{0}, {0}} // 宣告一個二維陣列
Python: a = [[0] * 3] * 2 或者是 a = [[0] * 3 for _ in range(2)]
還是不建議這樣實現多維陣列
是可以的,不會不建議。不過因為 Python 列表的長度是可變動的,所以有時候不一定要一開始就把初始資料和大小都指定好,可以分開做,例如:
list=[]
list.append([0, 0, 0])
list.append([0, 0, 0])
print(list)
請問Python可以跑出倒序列嗎?
ex. grades=[12,60,15,70,90],若print(grades{2:0]),為什麼跑不出[15,60,12]呢? 謝謝
不能跑倒序列阿,前方的數字要放小的
@@Allen_wu7651 了解 謝謝
感謝 @Leo Wu 的說明 :)
澎澎老師,我有個疑問,既然tuple 不可變動,那為什麼不全用list就好了,我相信撰寫語法時,一定很常做更動,用tuple 不是自找麻煩嗎?
多人開發時,可以確保資料不被更動,執行速度上會快一點。
@@cwpeng-course 原來如此,謝謝老師,也很感謝老師的教學,我覺得寫程式很有趣,看著一連串代碼把它撰寫出來,在成功執行,會有滿滿的成就感,感謝老師👍
@@涂嘉宏-s9b 有成就感有樂趣很棒,加油 :)
想請問老師在有序列表當中從12:26開始的邏輯
因為[0:2]應該為[3,4,5]皆被取代,為何取代後的結果為[5,5,5,5]而不是[5,5,5 ]
我認為是[0:2]中,只有第0跟第1項被取代,即3和4。
3,4變成了5,5,5而原本第2項的5沒有改變,卻被當成第3項。
最後總共有4項,而第3項是最後一項。
要留意[x:y]的後者是不在計算內的。
感謝 @KaiYin Ng 的回應 :)
110.8.21謝謝老師,持續學習中
加油哦 :)
請問老師我照你這樣打 也有存檔 但在TERMINAL 那行 就是印不出來[12,60,15,70,90] 就是跑不出來 我去最初教學開的資料夾也印不出東西來了
是否有錯誤訊息呢?另外資料夾和檔案名稱盡量不要使用中文哦 ~
老師你c語言寫習慣了喔看到;結束鍵
哈哈哈,確實是習慣性的會打分號 XDDD
其實大部分語言都有" ; ",沒有的話就會有點不踏實的感覺 ww
老師你好 對於影片5:44處 還有一些疑問
現在grades = [12, 60, 15, 70, 90]
然後我想要一次印出 [12, 60, 90] i.e print (grades[0, 1, 4])
但是 如國執行 print (grades[0, 1, 4]) 會有錯誤 TypeError: list indices must be integers or slices, not tuple
請問該如何修正
同樣 如果相同資料 grades = [12, 60, 15, 70, 90]
我只想印出大於或等於 60的資料 我期待是 [60, 70, 90]
我的想法 print(grades > 60) 但是同樣無法執行
請問該如何修正
不知道以上問題該如何解決 還請老師回答 謝謝
第一個問題你可以先分別取出在串起來,如下:
grades=[12, 60, 15, 70, 90]
print(grades[0:2]+grades[4:5])
第二個問題我們可以寫一個迴圈去做搜尋,並且把結果存放到另一個列表中再展示出來,例如:
grades=[12, 60, 15, 70, 90]
betterGrades=[]
for data in grades:
if data>=60:
betterGrades.append(data)
print(betterGrades)
@@cwpeng-course 感謝老師回覆
@@cwpeng-course 老師您好,也有相同的問題一。想問錯誤訊息說"grades[0, 1, 4]無法用,是因為被視作tuple",而前一課中,印字串中指定編號可以這樣寫,是因為一開始變數指定它是字串,所以print時不會誤認這樣嗎?
另針對這個list indices must be integers or slices詢問兩種差異,我試了list中存數字、字串,並分別用[?]、[?:?]替換寫後,有以下想法,想問一下這個理解是否有誤?
列出清單中間隔的特定編號資料的寫法:
#正解:"取出"以[?:?]表示的slice片段後,用+連接。
PS對數字或字串都可行,取出性質為可包含兩者的list(會將取出的各個資料用,隔開)。
#另解:如果直接用[?]integer取單個,會判斷成數字或單一字串,進行加法或字串串聯成單一結果(數字或字串)。
*故因為
得出的資料類型不同,所以slice和integer取出的無法用+運算。
彭老師請問有沒有python的學習書籍推薦又或你有沒有出書,在香港有沒有得賣(初學)
我自己本身沒有出書,也超過十年沒有透過書本學習技術了,所以我好難推薦書籍的呀,不好意思 @@a
請教彭彭老師
要怎麼調整終端機字體大小?
我有照網路上的方法調整到上方editor的字體大小,可是終端機還是沒有調整到。
試試看 ctrl + 和 ctrl - 快速鍵是否能調整到終端機的字體。
有了耶 謝謝彭彭老師~~
10:25 巢狀列表
感謝紀錄 ~
12:16 老師我想提問 data[0][0:2] 為何是指3,4這兩個數字
第一個[0]是指[3,4,5],而[0:2]是指第0個到小於2,所以是第0、1個
感謝 @蘇志佳 的說明 :)
有一个问题想请教彭彭老师,怎样才能快速从代码界面切换到下面的终端界面呢,一直用鼠标点感觉会比较麻烦= =
CTRL+`
感謝 @zozo4215 的回應呦 :)
請問老師:
grades=[1,2,3]
grades1=grades+[88,99]
grades2=grades,[88,99]
print(grades1) 結果-> [1, 2, 3, 88, 99]
print(grades2) 結果-> ([1, 2, 3], [88, 99])
請問為什麼 print(grades2) 結果的前後有括號呢?
你的 grades2 的寫法等於是把兩個列表包在一個 tuple 裡面,所以自然就會多出一層 ~
有時候影片做得越簡單 其實案情越不單純XD
第一次看老師影片覺得蠻簡單 心想這種東西有需要認真學嗎
但翻了一些書之後再回來研究 發覺天啊 用到很多技巧
例如變數的重新賦值 可變物件的內容變更 巢狀list的位置索引取值再slice...
而這些東西沒去翻點書只看網路上的影片根本不知原理 你甚至沒學到皮毛
看了覺得很簡單那是因為你根本不懂寫的人的功力
同樣影片從頭看到尾 你真的懂了嗎XD
很有趣的心得分享,謝謝你願意回饋給大家 :)
老師,我想請問以下的要如何寫
list = ["A","E"]
list2 = ["B","C","D"]
兩個相加
#輸出結果為 : ["A","B","C","D","E"]
list[1:1]=list2
請教彭彭老師:
data[0][0:2]=[5,5,5] 此定義比原來[0:2]編號多一個數值,print 結果data[0] 多一個數值變成4個,成為[5,5,5,5] ,此部分有何規範與限制嗎?
其實就像你看到的,把 [0:2] 這段範圍中原本的 2 個數值,用 [5,5,5] 取代,自然就多一個數值。
Python 的列表,尤其是 List,是動態的資料結構,可以輕鬆的新增、修改、刪除資料,只要基本語法有符合,大致上也沒甚麼特別的限制嘍 :)
@@cwpeng-course有繼續研習後面教學章節,已了解動態資料結構的靈活性,謝謝彭彭老師詳細解說!
data=[[3,4,5],[6,7,8]]
data[0][0:2]=[5,5,5]
print(data)
为什么第一个会变成元素格会变成[5,5,5,5}呀
求解答 谢谢~~
期待老师或者同学的解答~~ 谢谢大家!!
第一个[0]取得是[345]这个列表,[0:2]表示取这个列表[3,4],=[555]表示把[3,4]换成[5,5,5],所以原来的[345]列表就变成了[5555]
@@zquan877 感谢~已解决!!
感谢 @Z Quan 的回应 :)
想請問怎麼跳著取資料呢? 例如取索引位置0,2,4形成一個列表。謝謝!
試試看:
list=[2*x for x in range(3)]
彭彭老師,想請教一下。老師第一堂課講 「# 中文字 」是程式中的註解,打中文字是沒問題的,但是為什麼我運算時會出現SyntaxError: Non-ASCII character '\xe6' in file list-tuple.py ?我查了網上寫在文件頭部添加# coding=utf-8就可以解決(試過可以),但是想知道是不是因為我沒設置好軟體本身導致的?為什麼老師不用額外添加代碼就可以運算,謝謝
這可能是 Python 版本的問題,Mac 電腦確定有安裝最新的 Python 3 版本,執行時使用:python3 檔案名稱
想請問老師,如果我寫:
A = [1,2]
B = [A,A]
B[0][0] = 9
print(B)
為什麼出來的結果會是[[9,2],[9,2]]?
我希望是[[9,2],[1,2]] 阿~
因為 B 中的兩個 A 其實是指到相同的資料,所以改其中一個,另一個也會跟著變動。寫成:
A1=[1,2]
A2=[1,2]
B=[A1, A2]
或者直接寫 B=[[1,2], [1,2]] 就可以,因為會明確的產生兩個獨立但資料一樣的列表。
@@cwpeng-course 謝謝!
tuple 跟 list 只差在可不可變動,那我是不是只用list就好了?容錯率較高。
如果不希望其他工程師接手後,隨意變動的東西,我們就會喜歡 Tuple,這樣被隨意變動時會產生錯誤提醒,是好事情。
彭彭老師 想請教您 為甚麼我程式一直寫說 "[" was not closed pylance 請問哪裡出錯了呢?
如果程式可以執行就不用理會,因為你安裝了 pylance 這個擴充工具幫你檢查程式,但不一定有完全設置好
其實還蠻想問 是會遇到什麼狀況才需要這樣修改的嗎?修改的方法這麼多
為什麼不要直接把原本的grades=[12,60,15,70,90] 要改什麼 直接裡面改
每次都重建資料對電腦來說是很費力的工作。
能夠一次只改一部份,會省力一些。
grades = [12,1,31,59,99,63,78,91]
老師您好不好意思問一下
如果list做基本運算怎麼做
像這個做平均怎麼做
還有grades我選第偶數位的分數不知怎麼取
搭配後面的迴圈,你可以算出總和,再除以數量即可。取偶數位也可以搭配迴圈來完成哦 ~
请教彭彭老师, python中怎样进行matrix的创建和操作?
你可以自行建立两层的列表操作,或者使用很受欢迎的套件叫做 NumPy 来做处理。
想請問,我試了Tuple
data=((3,4,5),(6,7,8))
data[0][0:2]
print(data)但是沒辦法執行,為什麼沒有變動列表這樣寫不會印出(3,4)呢?
第二行要寫 data=data[0][0:2] 不然取得的新資料不會覆蓋變數中本來的資料
謝謝老師 但是我有點問題 就是既然List和Tuple只在能不能更動資料上有差異,那Tuple有什麼存在的必要呢?全部都用List打不是最方便嗎?
Tuple的特性是immutable(不變性),有些場合我們不希望資料Build出來後會再被變動,例如多線程的部份,或者物件的狀態比較等等,這時候就適合使用具有不變性的資料集
謝謝 @田正雨 仔細的回應 :)
不知道為什麼我的visual code 裡面的terminal 裡面輸入 python XXX.py的時候都無法執行程式 只有 按右上角的方向鍵才可以執行
通常是在 VS Code 中安裝了一些額外的擴充套件所造成的,你可以查看一下擴充套件的部份,移除所有相關的擴充套件後,重新啟動電腦再試試看 ~
老師,請問若data=[3,4,5],[6,7,8]
我想把4改成[9,9]
輸入data[0][1]=[9,9]
會出現[3,[9,9],5]
請問該如何打才不會多出現一對中括號
單一項好像容易出狀況。但若以 12:40 例子來看,用不同長度的資料取代原有範圍可行
我想到的方法是
data=[ [3,4,5], [6,7,8] ]
data [0][0:2] = [3,9,9]
print (data)
感謝 @Lynn.915 的回應 :)
那tuple有什麼存在意義?既然它的功能list都有,為什麼會需要用到它?
程式經常是多人同時開發的,保證不能變動有時候可以確保意外不會發生,執行效率也會稍微好一點。
請問老師:
grades = [12,60,15,70,90]
grades[1:4] = []
print(grades[1:4])
為什麼還依舊會跑出90這項數值出來
第二行的意思是把 60, 15, 70 這三個資料去掉。刪除編號 1, 2, 3 的資料不包含 4。
所以 12 和 90 都被留下來嘍 ~
@@cwpeng-course 了解 謝謝老師解說
看留言發現這個有點怪
第三行print(grades[1:4])
應改為print(grades)
因為第二行時,編號1~4清空了
print(grades[1:4])、print(grades[1:3])
print(grades[1:2])、print(grades[1:1])
print(grades[0:1])組合下結果都相同呢
老師您好 可以再解釋11:06的那段嗎?或是舉例 小弟不才麻煩老師了
data=[[1,2], [3,4]]
data[0] 就是 [1,2]
data[0][1] 就是 2
一層一層看 ~
老師您好:我是新手,想請問巢狀列表如果要印出第1層的某個數,加上第2層的某的數,應該如何寫呢?感謝回覆。
data=[[3, 2], [1, 5]]
print(data[1][0]) 會印出 1
@@cwpeng-course 謝謝老師,非常感謝老師的影片,淺顯易懂,讓我受益良多😊
@@cwpeng-course 老师您好 ,我是新手 想请问一下 如果我先写第一层 就是 print(data[0][0]) 如果又想加第二层的数字 应该用什么来连接
請問課程中巢狀列表只有輸入[3,4,5],[6,7,8]沒有在外層再套上[ ],print(data[0][1])出來的結果也一樣耶,請問老師有加沒加外層[ ],的差異
沒有明確的加上 [ ],你的資料會是 tuple,最後的使用是一樣的。但明確的加上 [ ] 會讓你的程式比較容易被看懂和理解成列表。
感謝課程分享~~很實用!
謝謝你的回饋呦 :)
我有個問題:
x=3/6
print(x)
得到的結果是0
小數位不會顯示,是為什麼呢?
你的 python 應該是第 2 版的,建議升級到 python 3 嘍 ~
老師請教一個問題,通常我會利用 number=int(input("請輸入資料:))來輸入資料,但這個方式只能輸入一個數值。若我想要讓使用者能在一個input下輸入多個資料,我應該如何撰寫程式碼呢?
同樣的,若可以用input()來一次輸入多個資料,那我的變數number是否要也應該有所變動呢?改成list型態嗎?還是有別的用法呢?請老師解惑,謝謝!!
你可以要求使用者用特定的格式輸入,例如用逗號隔開,然後再做一些處理,例如:
data=input("請輸入逗號隔開的數字") # 得到字串 3,5,11,0
data=data.split(",") # 運用字串的切割工具,把資料變成列表 ["3", "5", "11", "0"]
無論用什麼方法,確實後續的程式都要根據你期待的輸入去做一些調整,可以大膽地嘗試看看沒問題的 ~
@@cwpeng-course 謝謝老師,我想就照你的建議去 try try 看囉!
@@吳家華-y3h 祝你順利 :)
3:25 列表中的元素vs字串中的字元
澎澎老師請問,這部影片開頭我試著第一步的印,結果變成PS C:\Users\user\python training> python list.tuple.py
C:\Users\user\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\user\python training\list.tuple.py': [Errno 2] No such file
or directory
因為我看到一行英文字can't open file,後來我再回去嘗試印前幾級教學的東西,也全部都變這樣了
澎澎老師不好意思,沒問題了,因為我後來為了讓他排列順序整齊在每個檔案前面都照你教程的順序做了數字編號,所以有改名過xd
嗯嗯嗯,有解決就好嘍 :)
看了这么多,第一次看见这个视频最容易学会
谢谢你的回馈呦 :)
python自动化测试,测开方向,需要学习那些内容??
这个领域我不熟,没办法回答你呦,不好意思 ~
tuple的使用情境是甚麼? 不能更動資料,很難用的資料型態
通常速度會比 List 快一點,但這要在資料量很大的時候才會明顯 ~
老師請問一下
data= [[3,4,5] , [6,7,8]]
data[0][0:2] PRINT出來的結果不是應該是3,4,5 嗎? 怎麼會是3,4?
影片裡面重複看還是搞不懂...
data[0] 會是 [3,4,5],data[0][0:2] 就是 [3,4,5] 中的前兩個資料,就是 [3,4]
@@cwpeng-course 我了解了 我在6:20秒這段找到答案~感謝老師抽空回復
by the way,實在教的太好 無論是影片內容安排的時間、Temple、解釋方式
能夠如此化繁為簡,老師大神萬歲!
@@lujack5629 謝謝你的回饋哪 XDDD 有找到答案就好 :)
請問有類似由大到小排序的教學嗎
目前沒有,感謝你的建議 ~
請問我要怎麼連續輸入元素到List中(以空白隔開)?因為題目有要求所以之前都是用
a=map(int,input().split())來輸入(網路找到的),可是這樣我沒辦法直接用len,max來做處理(或許可以只是我不會)然後我也不知道map是甚麼?
你已經找到解法了,你可以直接搜尋 python map 來看看大家怎麼解釋。要使用 len 就寫 len(a) 即可
老師可以請問一下,為甚麼我打完新的程式碼後輸入list-tuple.py顯示的是前一個的數字,好像要按上面那個綠色播放鍵才能更新,有甚麼方法可以改或是要去哪裏設定?謝謝老師
我好像知道
你可以自己手動儲存檔案,按 ctrl+s 儲存檔案後再執行程式
彭彭老師,以下是我的程式碼:
data=[1,2,3]
print("data:",(data))
#data2=data.reverse()
#print("data2:",(data2))
data.reverse()
data2=data
print("data2:",(data))
執行結果: data:[1,2,3]
data2[3,2,1]
這跟我預期的是一樣的,沒有問題。可我將上面兩行以註解符號標示的程式碼解開後,再執行一次,結果如下:
data:[1,2,3]
data2:None
data2:[1,2,3]
完全跟我預期的不一樣ㄟ~~~~ ,怎麼會跑出data2:None的答案? 然後我再將data 串列再反轉一次後,,再放入data2串列中,印出來的答案卻是[1,2,3] ,不是應該是[3,2,1]嗎? python 並沒有顯現出我的程式碼有甚麼錯誤,但這不是我要的結果。 所以只好放上留言版請老師解惑? 我猜問題點是在 data2=data.reverse()這行程式碼,但不能理解為什麼? 另外之前有請教老師關於如何在一個input指令下同時輸入多筆資料的問題,謝謝老師的解釋和提醒,我也因此將一個判斷三角形的小程式完成,感恩!!
data.reverse() 會把自身的資料反轉,也就是 data 的資料會被反轉。但 data2 要看函式的回傳值,reverse() 如果去查資料,你會發現這個函式不會回傳任何東西,因此 data2 會得到 None。
老師您好!
請問不可變數只能用data做開頭不能用grades開頭嗎?
沒有這個限制哦,那只是變數名稱而已。
模擬老師作法,但是最後的print(data)呈現結果不同。
data=[[1,2,3],[4,5,6]]
print(data)
data=[0][0:2]=[3,3,3]
print(data)
終端機的執行結果跟老師不同
[[1, 2, 3], [4, 5, 6]]
[3, 3, 3]
第3行data多了個=
謝謝老師
感謝 @顏佑任 的回答 :)
不好意思,最近剛開始學,可以請問
x=map(int,input().split())
print(sum(list(x)))
print(len(list(x)))
這樣打len都是0,如果調換位置,就變成sum是0,可以請問為什麼會這樣嗎,?謝謝您
您好:
建議您先將語句拆開寫
當您知道每句的意思後, 再去簡化
例如:
x=map(int,input().split())
拆為:
i = input()
s = i.split()
x = map(int, s)
希望能對您有幫助
謝謝 @Stephen Huang 的學習指引 :)
請問如果想呼叫以下每個列表的第一個數字
為什麼寫成print(y[0:3][1])後答案是[6, 7, 8]而不是[1,6,9]。
y=[[1,2,3],[6,7,8],[9,10,11]] #巢狀列表
不好意思我是新手發問,有許多不懂,希望老師能幫我解答,謝謝。
y 裡頭中的三個元素是三個子列表。
y[0:3] 代表 y 中的第一到第三個元素,也就是裡面的三個子列表。
然後 y[0:3][1] 代表三個子列表中的第二個,也就是你看到的 [6, 7, 8]
彭彭老師您好,tuple是不可變動的列表,但是data = (3, 4, 5),data = data + (6, 7)之後,印出來的data為(3, 4, 5, 6, 7),請問這樣叫做變動嗎?謝謝老師
原始的 Tuple 資料沒有變動,它是把兩個 Tuple 資料經過運算之後變成新的資料,再重新放回變數中。如果你寫 data[0]=10 就是直接更動原始的 Tuple 資料。
@@cwpeng-course 原來是變成新的資料,謝謝老師回覆
@@cwpeng-course 請問如果是巢狀Tuple ,data =((3, 4, 5),(6, 7, 8)),想要透過類似data = data + (6, 7)的指令,把data變成((3,4,5,9,10),(6,7,8),指令應該怎麼寫?
彭彭老師好 最近新手上路
一天看一集
昨天使用VScode 執行時都還正常
但今天要執行時 跑出
Suggestion [3,General]: The command data.py was not found, but does exist in the current location. PowerShell does not load commands from the current location by default. If you trust this command, instead type: ".\data.py". See "get-help about_Command_Precedence" for more details.
我有爬了文章 使用set-executionpolicy remotesigned 並執行最高權限 但依然無效
照上面所說的改用 .\data.py 執行 卻沒有跑出任何東西(確認內容都寫對)
想問是發生甚麼事情了嗎?
你可能不小心安裝了一些擴充套件,影響到 Python 執行環境,你可以查看 VS Code 的擴充套件管理,把有裝上去的都移除再試試看。
請問如果我想要印出一個list 裡面的兩個元素 ,一定要寫 print(data[3],data[5])嗎? 有沒有其他寫法?
另外,如果我想要把一個list裡面的值全部乘以2要怎麼寫?
如果是不特定的兩個元素,確實就如你所寫,沒什麼其他辦法了。
可以使用迴圈,例如:
data=[3,4]
for i in range(0, len(data)):
data[i]=data[i]*2
print(data)
請問,我寫一個程式
temp=[1,2,3]
B=[temp]*100
我想修改B[1][1]值
B[1][1]=5
但是這樣會所有的B[][1]都修改掉
請問老師我要如何修正
不能用 B=[temp]*100, 請改為
b=[]
for i in range(100):
b += [temp.copy()]
這時用 b[1][1] = 5 就可以了
感謝 @Stephen Huang 的分享,很讚 ~
nums=input("請輸入一個為三位數的整數值:")
nums1=list(nums)
nums2=nums1
print("nums1:before reverse",nums1)
print("nums2:before reverse",nums2)
nums2.reverse()
print("nums1:after reverse",nums1)
print("nums2:after reverse",nums2)
老師請問,我將list nums1 指定給list nums2, 然後將 nums2利用reverse() 函式進行串列元素反轉,接著印出nums1 與 nums2 ,我預期的是nums1是未進行反轉前的串列,nums2是進行反轉後的串列,但結果卻是兩個串列都進行了反轉的動作了! 我的邏輯有錯誤嗎? 請解惑!謝謝你!!
nums2=nums1 這個動作會把同一個 List 的資料指定給 nums2,有點像是同一筆資料得到兩個名字。所以做完這個動作之後的 nums1 和 nums2 其實是代表同一筆資料,因此有你說的現象,也就是你對 nums2 做反轉,也會直接反映到 nums1 中。
@@cwpeng-course 那我要如何保留反轉前的串列資料來和反轉後的串列資料做比較呢? 因為我會想把nums1指定給nums2就是想保留反轉前的資料,然後再來進行同一串列反轉前後的差異比較,照老師的說法,我這樣的作法是行不通的。 有方法可以做到我想要的結果嗎? 謝謝!!
@@吳家華-y3h 好像只能把 nums2.reverse() 這段程式改成 nums2=list(reversed(nums2))才可達到你想要的結果吧
已訂閱
讚讚 ~
1130310非常清楚,謝謝老師
不客氣呦 :)
老師請問你是有特別裝什麼程式嗎?
為什麼我下註解的時候
系統就會跑錯誤
中文註解就會 英文不會
版本的問題,如果是 Mac 的話執行時輸入:python3 檔案名稱
话说那个巢状列表里面是不是没有办法同时打出第一个列表里的某个资料和第二个列表里的某个资料
比如[3,4,5],[6,7,8]里面没法同时print3和7
data=[[3,4,5],[6,7,8]]
print([data[0][0]],[data[1][1]])
我照這樣打可以印出3跟7 ,怕3跟7的間隔太近又多加了一個中括號,供你參考看看。
感謝 @YU TING LAI 的回應 :)
請問彭彭老師,使用副檔名為.py 或.IPYNB有何不同呢?
因為之前都是用jupyternoterbook在練習,最近才轉換使用編譯器進行練習。
但其實不太清楚用jupyter 或visaul studio在撰寫python上有何差異?
在煩請老師解惑
jupyter 是特殊的運作環境,你在我的影片中學到的是一般性的 python 運作環境,一般性的環境未來會比較容易擴展到別的應用,例如網站伺服器等等。
當成是兩種東西來學就可以。
了解,感謝老師解惑
Thanks for your teaching!
My pleasure!
巢狀列表數位有困難
data=[[列表1],[列表2]]
data=[[3,4,5],[6,7,8]] > print(data[0][1]) > 4
不明白?
data[0] 代表外層列表的第一個資料,也就是列表 [3,4,5]。接著 data[0][1] 就代表裡面的第二個資料,也就是 4
打卡學習!
好哦!
老師我想問怎麼依序輸入列表,像C語言,寫法是 for(int i=0;i
利用 append 把資料一一放進去,大概像下面這樣的概念再配合迴圈運作:
list=[]
list.append(3)
list.append(4)
在terminal那邊會有很多藍字顯示檔案路徑,請問有甚麼方法可以讓她不要顯示嗎?實在有點占空間
不太確定你描述的狀況,不好意思,可能也沒辦法解答你的問題 @@a
是不是有些檔名會讓電腦無法跑出程式
應該是說超過一個字的檔名
應該是不會哪,除非有很特殊的符號 ~
老師,請問一下:因為我是Python得初學者,所以我想請老師推薦一本Python的入門書籍,可以製作貪食蛇或其他遊戲。謝謝老師!
我可能沒辦法推薦書籍哦,因為我自己已經很多年沒有看書了,主要都是依賴官方的文件比較多 ~
老師您好,我在實作上
data=[[1,2,3],[4,5,6]]
data[1][0,1]=[9,9,9]
print(data)
顯示 TypeError: list indices must be integers or slices, not tuple
請問是因為第二個陣列是無法更換的嗎?
你是想把4,5,6改成9,9,9嗎? 如果是的話 試試看這個
data=[[1,2,3],[4,5,6]]
data[1][0:3]=[9,9,9]
print(data)
僅供參考 初學者摸索的
Sorry 我秒發現問題,是自已愚蠢 打成[0,1]應該是[0:1]
感謝 @Ralf LIN 回應,有解決就好 :)
彭彭你好~
有序可變動列表 List
grades=[12,60,25,70,90]
print(grades[0])
會得到12
那如果我要得到12 60 90
print(grades[??]要怎麼打呢?感謝
@七擒七縱七色狼 了解!!
但我想請問關於巢狀列表的部分
data=[[3,4,5],[6,7,8]]
print(data[0][1]) 會得到"4"
如果我想得到3,4,5,7
那print(data[??])要怎麼打呢?
反之Tuple
data=([3,4,5][6,7,8])
也是想得到3,4,5,7 又要如何打呢?
感謝說明❤️
@七擒七縱七色狼 列表要怎麼打
@七擒七縱七色狼 python3
mac電腦
@七擒七縱七色狼 拍謝我是超級新手目前是自學的
@七擒七縱七色狼 會了會了!!!原來可以這樣打XD感謝你
可以说明一下为啥tuple是不可变动的吗?为啥会有这样的设定?
Tuple 不可变动就是 Python 建立的规矩而已。至于为什么要有这样的设定,不能变动的东西通常运作效率会比能变动的东西来得高出许多。
@@cwpeng-course 噢噢
請問老師10:25 在說巢狀列表時,右邊的中掛號是第三層嗎?還是跟左邊的中掛號一樣是第二層呢?
345是0 678是1
@@DennyCheng-f4i 謝謝🙏
@@李奇勳-q2k 不客氣 不知道有沒有回答到你的問題我剛好看完課程
@@DennyCheng-f4i 我都用兩倍速 然後看三遍哈哈哈哈哈
感謝 @鄭博文 的說明哦 :)
不知道為什麼我的visual studio顯示無法初始化裝置...之前用都好好的
移除後重新安裝看看 ~
不好意思,想請問一下老師
如果是a=[(1,2,3),(4,5,6)]
巢狀的要如何判斷3是不是在a裡面呢?
3 in a[0] =>這種寫法是可行,但是這是我已經知道了(1,2,3)是在list第0個位置
假設今天資料是很長一串list,我想找某個元素是否有在裡面的話,大概要如何做呢?
感謝
結合迴圈,去逐一抓取列表中的每一個子項目,然後再判斷是否在其中,例如:
for s in a:
if 3 in s:
print("存在")
@@cwpeng-course 感謝老師,有完整解決問題^^