登入首頁
收藏 0
返回課程
實作一群人的bmi存至list並寫至csv檔
  • 進階程式設計
  • 程式語言的排名
  • 加入課程請說hello
  • 2025toibe程式語言排名與Python實作
  • 問Gemini 2025程式語言排名
  • copilot詢問python雲端開發平台Google colab並實作
  • colab hello說三遍
  • 分組
  • ex1 程式語言排名&Python 第一個程式
  • 從基本變數概念到if
  • python 運算式、變數與資料型別
  • python if
  • python實作BMI if elif else利用Blockly技術輔助
  • ex2 bmi
  • bmi2.ipynb
  • 計算一個人的bmi並寫個判斷函數
  • list跟for loop
  • 實作一群人的bmi存至list並寫至csv檔
  • Python list與切片slice與sort
  • bmi+list+csv
  • 一群人的bmi.ipynb
  • Python函數參數的問題
  • Python list函數處理一群人的bmi的簡報
  • Python用with open與pandas將健康數據寫進csv檔
  • 字典dict
  • dict
  • Python dict字典相關語法說明
  • dog_dict.ipynb
  • bmi_dict.ipynb
  • ex3 一群人的bmi處理至少三人
  • 一群狗狗採dict處理屬性與DataFrame處理表格資訊
  • 一群人bmi健康資訊採dict與DataFrame處理
  • requests與股市資訊
  • requests讀取台積電股票json資訊爬蟲練習
  • requests與股市json資訊
  • 用requests取json格式的股市資訊code
  • 細談 requests抓股市json格式Python實作
  • 股市資訊與pyplot+中文字型1102線上教學
  • requests股市爬蟲與pyplot數據視覺化操作
  • Colab上安裝中文字型修改股市爬蟲pyplot顯圖
  • stock2025_中文字型.ipynb
  • ex4 爬蟲股市與日線圖
  • 重點
  • 討論 (2)
  • 筆記
發表時間 : 2025-10-11 22:13
觀看次數 : 172
原始資料來自 : https://www.youtube.com/embed/qjB-bbEO0O8?si=jAtliXsqg_qKHGJG
附件
討論功能僅開放給課程成員,請先加入課程
最新的回應 ...more
4 天前
C11333125 : Python 的 list 是一種動態、可存放不同型別物件的容器,而 C 語言的 陣列(array) 是一種固定長度、相同型別、連續記憶體的資料結構。
10-13
C11233112 : C 語言陣列:大小固定,型別單一,效能高,但需要手動管理記憶體,並且不會檢查越界。 Python List:大小可變,型別可以不同,內建許多方便的操作,會自動管理記憶體和範圍檢查,但效能較慢。 簡單來說,C 的陣列更高效,但需要更多的手動管理;Python 的 list 更靈活且方便,但在效能上略遜一籌。
10-12
C11333141 : Python list 和 C 陣列的差別: 資料型態(Data Type) C 陣列:只能存放同一種型態的資料,例如全部都是整數(int)或全部都是字元(char)。 Python list:可以同時存放多種型態的資料,像數字、字串、甚至其他 list。 大小(Size) C 陣列:大小固定,在程式編譯或執行前就決定,不能動態改變。 Python list:大小可動態調整,可以隨時增加或刪除元素。 記憶體配置(Memory Layout) C 陣列:在記憶體中連續排列,方便快速存取。 Python list:底層存放元素的參考(地址),元素本身不一定連續。 效能(Performance) C 陣列:由於連續記憶體,存取速度快且效率高。 Python list:因為動態與多型別管理,執行效率較低。 安全性(Safety) C 陣列:無自動邊界檢查,錯誤存取可能造成程式崩潰或錯誤。 Python list:有邊界檢查,超出範圍會拋出例外,程式較安全。 總結 Python list 提供高度彈性和使用方便,適合多樣化資料管理;C 陣列則是高效且直接的低階資料結構,適合對性能有嚴格要求的場合。
10-12
c11333135 : Python 的 list 是動態資料結構,可以在程式執行中自由增加或刪除元素,元素型態也不必相同,使用方便並具邊界檢查功能; 而 C 語言的陣列 是靜態結構,宣告後大小固定,所有元素必須為相同型態,且沒有邊界檢查。 整體來說,Python 的 list 重視彈性與安全性,C 陣列則強調效能與記憶體掌控。
10-12
c11333132 : 1. Python list:動態大小,可以儲存不同類型的元素,操作簡單,自動管理內存,速度較慢。 2. C 陣列:固定大小,元素類型必須相同,需要手動管理內存,速度較快。 Python 更靈活方便,C 更高效但需要手動處理更多細節。
C11333116
最大的差異在於彈性 (Flexibility) 與 效能 (Performance) 之間的取捨。Python 的 list 追求的是開發上的彈性與便利性,而 C 語言的 array 則著重於記憶體效率和執行速度。
10-12 1 樓
C11333131
Python List:

Python 的 list 是由高級的記憶體管理系統來處理的,開發者不需要擔心記憶體分配或釋放。

當 list 擴展或縮小時,Python 自動管理記憶體。

C 陣列:

C 語言的陣列需要手動管理記憶體,特別是當使用動態記憶體分配時(例如使用 malloc 或 free)。

如果創建了一個指向陣列的指針,必須小心處理記憶體洩漏或重複釋放等問題。
10-12 2 樓
安文
請問Python的list跟C語言的陣列差異性
10-12 1 樓
顯示先前的回應25 則當中的 3 則
C11333105
Python 的 list 是動態大小且可以儲存不同型態的元素,而 C 語言的陣列是固定大小且只能儲存單一型態的元素。

List 在記憶體使用上通常比 C 陣列更具彈性,但 C 陣列由於資料連續儲存且型態單一,在處理大量相同型別資料時,效能通常更佳。
10-12 2 樓
C11333142
Python 的 list 是動態的,可以隨時加減元素,裡面還能放不同類型的資料,操作也很方便。
C 語言的陣列是固定大小的,必須在一開始就決定好,而且所有元素必須是同一類型,操作上也比較麻煩,速度卻比較快
10-12 3 樓
C11333137
大小:list 動態可變,C 陣列固定大小。

元素類型:list 可存不同類型,C 陣列元素型別相同。

記憶體管理:list 由 Python 自動管理,C 陣列需手動管理。

操作:list 提供內建方法(如 .append()),C 陣列無內建方法,需手動處理。

總結:Python list 更靈活,C 陣列則性能較好。
10-12 4 樓
C11333114
C 陣列和 Python list 差別在於:
大小:C 陣列大小固定,不能改;Python list 可以隨時增加或減少元素。
資料型態:C 陣列元素型別必須一樣;Python list 可以放不同型別的資料。
記憶體管理:C 陣列需要手動管理記憶體;Python list 自動處理記憶體。
操作:C 陣列操作比較麻煩;Python list 有很多內建方法,操作簡單。
性能:C 陣列速度快;Python list 較慢,但更靈活。
簡單來說,C 陣列適合需要高效能的情況,而 Python list 更適合快速開發和簡單操作。
10-12 5 樓
c11333109
Python的list 是動態且靈活的,可以包含不同類型的資料,操作簡單但效能較低;C語言的陣列 則需要預先設大小,資料型態固定,操作較麻煩但效能更高,適合對性能有要求的情況。
10-12 6 樓
c11333134
C 陣列:固定大小,元素型別相同,記憶體連續,操作需手動。
Python list:大小可變,元素型別可不同,記憶體不一定連續,有豐富的內建方法。
10-12 7 樓
c11333126
Python list:
動態大小,可隨時增加或刪除元素。
支持不同型別元素,靈活且易用。
記憶體管理自動,但效能較低。

C 陣列:
固定大小,需在宣告時定義。
僅能儲存相同型別元素,適合處理大量相同型別的資料。
記憶體管理需手動操作,且由於資料連續儲存,效能較佳。
10-12 8 樓
C11333120
Python 的 list 和 C 語言的陣列有以下幾個差異:

大小:C 陣列大小固定,Python list 大小可變。

元素類型:C 陣列元素類型必須相同,Python list 可以包含不同類型。

內存管理:C 陣列需要手動管理內存,Python 自動處理內存。

性能:C 陣列性能較高,Python list 會有額外開銷。

操作方法:C 陣列操作較基本,Python list 提供多種內建方法。

切片:Python list 支援簡單的切片操作,C 陣列需要手動處理。

總結:C 陣列適合高效能需求,Python list 更靈活易用。
10-12 9 樓
c11333119
Python的list和C語言的array在設計理念和底層運作上有非常根本的差異。簡單來說Python List追求靈活性,適合一般資料儲存、快速開發、資料處理。C Array追求效能與控制,適合需要極致效能、與硬體直接交互(例如嵌入式系統、高性能數值運算)。
10-12 10 樓
C11333122
C 語言的陣列是靜態且型別固定,大小不可變,需要手動管理記憶體,效能較高。Python 的 list 則是動態可變的,支持不同型別的元素,自動處理記憶體管理,提供豐富的操作方法,但效能較差。C 陣列適合對效能要求高的場合,而 Python list 更適合快速開發和原型設計。
10-12 11 樓
c11334197
Python的list 是一種動態資料結構,支援異質資料儲存,可儲存不同型別的元素(如數字、字串、其他list等)。
其大小可根據需求動態擴展,並提供豐富的內建方法(如 append、remove、sort)進行操作。
Python的list不需要手動管理記憶體,使用者可以專注於資料處理,而記憶體管理由Python自動處理。

C語言的陣列 是靜態資料結構,大小在編譯時已確定,且只能儲存相同型別的元素。
C語言陣列缺乏內建的操作方法,使用者需自行編寫程式來進行資料操作。
此外,C陣列需要手動管理記憶體(如使用 malloc 和 free),且其大小無法在運行時變更,對於動態資料處理較為不便。
10-12 12 樓
c11333106
C 陣列:需要預先定義大小,且只能存儲相同型別的資料,效率較高,控制細緻,但操作較簡單。

Python list:大小動態可變,可以包含不同型別的元素,操作更為靈活且功能豐富,但相對來說效率可能稍低。

這些差異主要是由於兩者所處的語言特性和設計哲學不同。C 更強調效能和底層控制,Python 則強調簡潔與靈活。
10-12 13 樓
c11333147
Python 的 list 是高層次、動態的資料結構,便於開發,支持多種類型元素,並自動管理記憶體,適合快速開發與數據處理。C 語言的陣列則是低層次、靜態的資料結構,提供精確的記憶體控制,適用於高效能或內存敏感的情境,但開發時需手動管理記憶體並進行邊界檢查。總體來看,Python list 方便、靈活,C 陣列則更適合需要效能優化的應用。
10-12 14 樓
c11333321
Python的list是動態、可變的資料結構,支援不同類型元素與多種操作,方便易用;而C語言的陣列是固定大小、類型一致的低階資料結構,性能較好,但操作較為繁瑣且缺乏自動邊界檢查。
10-12 15 樓
C11333144
大小:

C語言陣列:大小固定。

Python list:大小動態可變。

元素類型:

C語言陣列:元素類型統一。

Python list:可包含不同類型的元素。

索引檢查:

C語言陣列:不做範圍檢查,容易出錯。

Python list:自動範圍檢查,超出索引會拋出錯誤。

內存管理:

C語言陣列:需手動管理內存。

Python list:自動內存管理。

效率:

C語言陣列:較快,適合高效處理。

Python list:較慢,但操作方便。

操作:

C語言陣列:需要手動編寫操作。

Python list:有豐富的內建方法,如append()、remove()等。
10-12 16 樓
c11333136
Python list: 提供了更多的靈活性和便利性,但性能較低。

C 陣列:提供更好的效能,但使用起來較為繁瑣。
10-12 17 樓
c11333123
Python 的 list (列表) 長度可動態改變,能容納不同資料型別的元素,使用上非常靈活。它在記憶體中儲存的是物件的參照,因此較為耗費記憶體。

相對地,C 語言的陣列 (array) 長度在宣告時即固定,且所有元素必須為相同資料型別。其資料儲存於一塊連續的記憶體空間,這使得存取速度快、記憶體效率高,但缺乏彈性。
10-12 18 樓
C11333107
1. 資料類型與儲存內容 (底層結構)
這是最根本的差異:

Python List: 列表中的每個槽位都儲存一個 8 位元組(在 64 位系統上)的記憶體位址,指向一個完整的 Python 物件。這些物件可以是任何類型,因此列表是異質的。


2. 大小與記憶體分配 (動態 vs 靜態)
Python List 實現為一種動態陣列 (Dynamic Array)。當您不斷添加元素且記憶體不足時,Python 會在內部執行以下操作:

分配一個更大的新連續記憶體塊 (通常比舊的大小多 12.5% 或更多)。

將所有舊元素(即那些指標)複製到新記憶體塊中。

釋放舊的記憶體塊。
這使得列表使用起來非常方便,不需要操心大小,但這個擴容過程會帶來額外的時間開銷。

C Array 的大小在編譯或執行時就固定了。如果要改變大小,您必須手動使用 realloc() 或其他方式分配一個新的記憶體塊,並手動複製資料。

3. 效能 (索引存取)
雖然兩者都可以 O(1) 存取任意索引的元素,但 C 陣列更快:

C Array: 陣列的起始地址為 A,元素大小為 S。存取第 i 個元素只需要一個簡單的算術運算:Address(i)=A+i×S。這是一個單一、直接的記憶體存取。

Python List: 存取第 i 個元素需要兩步:

計算並存取列表中第 i 個位置(找到指標)。

利用該指標進行第二次記憶體存取(跳轉到實際的 Python 物件)。

因此,C 陣列的存取速度更快,且由於記憶體連續,對 CPU 快取 (Cache) 的利用效率更高。
10-12 19 樓
C11333129
主要差異:
C語言陣列:大小固定、資料型別單一、需要自己管理記憶體,效能較高但不那麼靈活。

Python list:大小可變、可以儲存不同型別的資料、記憶體自動管理,操作方便但效能稍微較低。

結論:
Python list 讓初學者更容易上手,因為 Python 語法簡潔、直覺,且無需過多關注記憶體管理的細節。你只需要專注於學習程式邏輯,操作 list 的方法也相對容易理解。

相比之下,C 語言的陣列需要關注記憶體的配置、指標、邊界檢查等,對初學者來說會稍微複雜一些。
10-12 20 樓
c11333124
Python 的 List 和 C 語言的陣列(Array)在設計理念和特性上有許多根本性的差異。以下為您整理的主要區別:
特性Python List (列表)C 語言 Array (陣列)
資料型態異構 (Heterogeneous):可儲存不同資料型態的元素 (例如:整數、字串、物件等)。同構 (Homogeneous):所有元素必須是相同的資料型態 (例如:全部都是 int 或全部都是 char)。
記憶體分配非連續 (Non-contiguous):List 儲存的是指向實際資料對象的參考 (Reference),這些對象本身在記憶體中可能是分散的。連續 (Contiguous):陣列元素在記憶體中是連續存放的。
大小/長度動態 (Dynamic):長度可變,可以隨時新增 (append) 或移除元素,底層會自動處理記憶體重新分配。靜態 (Static) 或 固定 (Fixed):通常在宣告時就確定大小,或在執行時分配後大小固定,不能輕易改變。
效能彈性較高,但數值運算效率較低:由於需處理不同型態的物件參考,數值運算會比 C 陣列慢,尤其是在處理大量資料時。數值運算效率高:由於記憶體連續且資料型態統一,可以直接進行底層記憶體操作,速度快。
內建支援是 Python 內建的資料型態,可以直接使用 [] 宣告。是 C 語言的基本資料結構,直接在語法層面支援。
底層結構實際是一種動態陣列 (Dynamic Array) 的實現,會預留額外的空間,以便快速新增元素。是一個原始的、連續的記憶體區塊。
簡而言之:
Python List 是一個功能強大、靈活、可變長度的異構容器,是 Python 中最常用的序列類型。
C Array 是一個高效、固定長度的同構容器,更接近底層記憶體的實際儲存方式。
如果您在 Python 中需要一個類似 C 語言高效的同構陣列,通常會使用 array 模組中的 array.array 類型,或者更常見、功能更強大的 NumPy 套件中的 numpy.array。
10-12 21 樓
c11333132
1. Python list:動態大小,可以儲存不同類型的元素,操作簡單,自動管理內存,速度較慢。
2. C 陣列:固定大小,元素類型必須相同,需要手動管理內存,速度較快。

Python 更靈活方便,C 更高效但需要手動處理更多細節。
10-12 22 樓
c11333135
Python 的 list 是動態資料結構,可以在程式執行中自由增加或刪除元素,元素型態也不必相同,使用方便並具邊界檢查功能;
而 C 語言的陣列 是靜態結構,宣告後大小固定,所有元素必須為相同型態,且沒有邊界檢查。
整體來說,Python 的 list 重視彈性與安全性,C 陣列則強調效能與記憶體掌控。
10-12 23 樓
C11333141
Python list 和 C 陣列的差別:
  1. 資料型態(Data Type)
  • C 陣列:只能存放同一種型態的資料,例如全部都是整數(int)或全部都是字元(char)。
  • Python list:可以同時存放多種型態的資料,像數字、字串、甚至其他 list。
  1. 大小(Size)
  • C 陣列:大小固定,在程式編譯或執行前就決定,不能動態改變。
  • Python list:大小可動態調整,可以隨時增加或刪除元素。
  1. 記憶體配置(Memory Layout)
  • C 陣列:在記憶體中連續排列,方便快速存取。
  • Python list:底層存放元素的參考(地址),元素本身不一定連續。
  1. 效能(Performance)
  • C 陣列:由於連續記憶體,存取速度快且效率高。
  • Python list:因為動態與多型別管理,執行效率較低。
  1. 安全性(Safety)
  • C 陣列:無自動邊界檢查,錯誤存取可能造成程式崩潰或錯誤。
  • Python list:有邊界檢查,超出範圍會拋出例外,程式較安全。
總結
  • Python list 提供高度彈性和使用方便,適合多樣化資料管理;
    C 陣列則是高效且直接的低階資料結構,適合對性能有嚴格要求的場合。
10-12 24 樓
C11233112
C 語言陣列:大小固定,型別單一,效能高,但需要手動管理記憶體,並且不會檢查越界。
Python List:大小可變,型別可以不同,內建許多方便的操作,會自動管理記憶體和範圍檢查,但效能較慢。

簡單來說,C 的陣列更高效,但需要更多的手動管理;Python 的 list 更靈活且方便,但在效能上略遜一籌。
10-13 25 樓
C11333125
Python 的 list 是一種動態、可存放不同型別物件的容器,而 C 語言的 陣列(array) 是一種固定長度、相同型別、連續記憶體的資料結構。
4 天前 26 樓
筆記功能僅開放給課程成員,請先加入課程
Prev
list跟for loop
Next
Python list與切片slice與sort