HOWTO · Python

Python 中從 1 到 N 的數字列表

學習如何透過這份逐步教學,輕鬆在 Python 中產生從 1 到任意所需值的連續數字列表。立即掌握數字列表的技巧,並提升您的 Python 程式設計能力。

本頁內容

無論您是 Python 初學者,還是想尋找不同方式來擴充您的程式設計工具包,建立一份從 1 到指定值的數字列表都是一項基本技能。

在 Python 中,有多種方法可以產生從 1 到 n 的數字列表。

一種常見的方法是使用內建的 range 函式,該函式最多接受三個引數:起始值、結束值(n+1,用於從 1 到 n 的包含式範圍)以及可選的步長值,從而可以指定遞增模式。

或者,NumPy 模組這個強大的數值運算函式庫,提供了一種簡潔的方式,利用其 numpy.arange 函式達到相同的結果。該函式同樣接受三個引數——起始、停止(n+1)和步長值——並傳回一個包含所需序列的 NumPy 陣列。

無論您選擇 Python 內建 range 的簡潔性,還是 NumPy 的多功能性,這些方法都體現了在 Python 中產生數字列表的靈活性和易用性。

在本文中,我們將探討各種方法,從簡單經典的方法到更進階、更有效率的方法。

如何在 Python 中使用使用者定義函式建立從 1 到 N 的數字列表

在 Python 中,您可以透過建立使用者定義函式,輕鬆地使用指定值產生從 1 到 N 的數字列表。此方法包括定義一個函式,該函式接受所需的數字,使用 for 迴圈迭代至該值,並將每個數字附加到列表中。

讓我們先定義這個函式,並拆解其組成部分:

def create_number_list(end_number):
    number_list = []  # Initialize an empty list to store the numbers
    for i in range(1, end_number + 1):
        number_list.append(i)  # Append each number to the list
    return number_list  # Return the final list

其中:

  • end_number:代表所需結束數字的參數。
  • number_list:初始化為空、用來儲存所產生數字的列表。
  • for i in range(1, end_number + 1):一個 for 迴圈,從 1 迭代到指定的結束數字(包含該數字)。
  • number_list.append(i):每次迭代都會將目前的數字 i 附加到列表中。
  • return number_list:函式傳回最終的數字列表。

現在,讓我們透過一個範例來實際運用這個函式。

程式碼輸入:

def create_number_list(end_number):
    number_list = []  # Initialize an empty list to store the numbers
    for i in range(1, end_number + 1):
        number_list.append(i)  # Append each number to the list
    return number_list  # Return the final list


result_list = create_number_list(12)
print(result_list)

在此,create_number_list 函式以參數 end_number 定義,代表所需範圍的上限。在函式內部,會初始化一個名為 number_list 的列表。

for 迴圈從 1 迭代到 end_number(包含該數字)。在每次迭代中,目前的 i 值會使用 number_list.append(i) 附加到列表中。

最後,函式傳回完成的列表。末尾的使用範例展示了以 10 為引數呼叫該函式,並印出產生的列表。

程式碼輸出:

python list from 1 to n - output 1

所提供程式碼的輸出將是從 1 到 12 的數字列表。

此結果是透過以 12 為引數呼叫 create_number_list 函式所得到的。該函式產生一個包含從 1 到 12(包含該數字)的數字列表,印出的輸出即顯示產生的列表。

如何在 Python 中使用 range() 函式建立從 1 到 N 的數字列表

range() 函式是 Python 的內建函式,可在指定的數字或範圍內產生數字序列。其基本語法如下:

range(start, stop, step)

其中:

  • start:序列的起始值(可選,預設為 0)。
  • stop:序列的結束值(不包含該值)。
  • step:序列中數字之間的步長(可選,預設為 1)。

讓我們來看一個建立從 1 到 10 的數字列表的簡單範例。

程式碼輸入:

numbers = list(range(1, 13))

print(numbers)

在此範例中,range(1, 11) 產生一個從 1 開始、在 11 之前停止的數字序列。接著使用 list() 函式將此序列轉換為列表,並儲存在變數 numbers 中。

程式碼輸出:

python list from 1 to n - output 1

輸出 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 的產生,是因為 range(1, 13) 函式產生了一個從 1 開始、到 13 為止但不包含 13 的數字序列。

您也可以透過調整 range() 函式的 start、stop 值和 step 參數,來自訂序列。

程式碼輸入:

even_numbers = list(range(2, 11, 2))

print(even_numbers)

程式碼輸出:

python list from 1 to n - output 2

在此範例中,range(2, 11, 2) 產生一個偶數序列,從 2 開始、在 11 之前停止,步長為 2。

此外,您也可以透過使用者輸入來決定序列的結束值。

程式碼輸入:

end_value = int(input("Enter the end value for the sequence: "))

numbers = list(range(1, end_value + 1))

print(numbers)

程式碼輸出:

python list from 1 to n - output 3

列表推導也提供了一種在 Python 中建立列表的簡潔方式。以下範例展示了如何將列表推導與 range() 函式一起使用。

程式碼輸入:

number_list = [i for i in range(1, 12 + 1)]
print(number_list)

這一行程式碼達到了與上一個範例相同的結果。它迭代 range(1, 10 + 1) 序列,將每個值附加到列表中。

輸出仍為 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。

程式碼輸出:

python list from 1 to n - output 1

此程式碼使用列表推導產生從 1 到 12(包含該數字)的數字列表,然後印出產生的列表。

如何在 Python 中使用 numpy.arange() 建立從 1 到 N 的數字列表

在 Python 中進行數值運算和處理陣列時,NumPy 函式庫堪稱強大且有效率的工具。NumPy 提供了一個名為 arange() 的函式,能讓您在指定範圍內建立具有規則且均勻間隔值的數字列表。

其語法與內建的 range() 函式相似,但提供了更大的靈活性和更多功能。

import numpy as np

np.arange(start, stop, step)

其中:

  • start:序列的起始值。
  • stop:序列的結束值(不包含該值)。
  • step:序列中數字之間的步長。

讓我們先來看一個建立從 1 到 10 的數字列表的簡單範例。

程式碼輸入:

import numpy as np

numbers = np.arange(1, 13)

print(numbers)

程式碼輸出:

python list from 1 to n - output 1

在此範例中,np.arange(1, 11) 產生一個數字陣列,從 1 開始、在 11 之前停止。結果儲存在變數 numbers 中。

與 range() 函式類似,您可以透過調整 numpy.arange() 的 start、stop 和 step 參數,來自訂序列。

程式碼輸入:

import numpy as np

even_numbers = np.arange(2, 11, 2)
print(even_numbers)

程式碼輸出:

python list from 1 to n - output 2

在此,np.arange(2, 11, 2) 產生一個偶數陣列,從 2 開始、在 11 之前停止,步長為 2。

與 range() 函式不同,numpy.arange() 允許您使用非整數的步長。

程式碼輸入:

import numpy as np

numbers_with_float_step = np.arange(0, 1.1, 0.1)
print(numbers_with_float_step)

程式碼輸出:

python list from 1 to n - output 4

此範例產生一個從 0 到 1(包含該數字)的數字陣列,步長為 0.1。

如何在 Python 中使用 list() 和 map() 建立從 1 到 N 的數字列表

在 Python 中產生數字列表的另一種方法,是使用內建的 list() 函式搭配 map() 函式。這種組合提供了一種簡潔而優雅的方式,可成功建立從 1 到指定值的數字列表。

list() 函式是 Python 的內建函式,可以將可迭代物件(例如序列或 range 物件)轉換為列表。另一方面,map() 函式會將給定的函式套用到可迭代物件(或多個可迭代物件)中的所有項目,並傳回一個可迭代的 map 物件。

當這兩個函式結合使用時,可以成為建立具有指定結構之列表的強大工具。

讓我們先來看一個使用 list() 和 map() 函式建立從 1 到 10 的數字列表的簡單範例。

程式碼輸入:

numbers = list(map(int, range(1, 13)))

print(numbers)

程式碼輸出:

python list from 1 to n - output 1

在此範例中,range(1, 11) 產生一個從 1 到 10 的數字序列。map(int, ...) 部分會將 int() 函式套用到序列的每個元素,確保所有元素都是整數。

最後,list() 函式將產生的可迭代 map 物件轉換為列表,並儲存在變數 numbers 中。

此外,您可以透過調整 range() 函式的參數,輕鬆自訂序列。例如,建立從 2 到 10 的偶數列表。

程式碼輸入:

even_numbers = list(map(int, range(2, 16, 2)))
print(even_numbers)

程式碼輸出:

python list from 1 to n - output 5

在此,range(2, 11, 2) 產生一個偶數序列,而 map(int, ...) 則確保所有元素都是整數。

與上一個範例類似,您也可以透過使用者輸入來決定序列的結束值。

程式碼輸入:

end_value = int(input("Enter the end value for the sequence: "))

numbers = list(map(int, range(1, end_value + 1)))

print(numbers)

程式碼輸出:

python list from 1 to n - output 6

此範例會提示使用者輸入序列的結束值,然後據此產生列表。

如何在 Python 中使用 while 迴圈建立從 1 到 N 的數字列表

while 迴圈是 Python 中基本的控制流程結構,可讓您在指定條件為真時重複執行特定的程式碼區塊。利用 while 迴圈是建立從 1 到指定值的數字列表的有效方式。

讓我們先來看一個使用 while 迴圈產生從 1 到 10 的數字列表的基本範例。

程式碼輸入:

start = 1
end_value = 12
numbers = []

while start <= end_value:
    numbers.append(start)
    start += 1

print(numbers)

程式碼輸出:

python list from 1 to n - output 1

在此範例中,我們先將 start 變數初始化為 1,將 end_value 變數初始化為 10。此外,還會建立一個名為 numbers 的空列表。

接著使用 while 迴圈,只要條件 start <= end_value 保持為真,就會迭代地將 start 的目前值附加到 numbers 列表中。

在迴圈內,start 變數在每次迭代中遞增 1。此過程可有效產生從 1 到 10 的數字列表。

您也可以透過調整初始值和迴圈條件,輕鬆自訂序列。請看以下程式碼範例。

程式碼輸入:

start = 2
end_value = 10
even_numbers = []

while start <= end_value:
    even_numbers.append(start)
    start += 2

print(even_numbers)

程式碼輸出:

python list from 1 to n - output 2

與第一個範例類似,我們將 start 變數初始化為 2,因為我們想從第一個偶數開始。end_value 設定為 10,並建立一個名為 even_numbers 的空列表。

while 迴圈會將 start 的目前值附加到 even_numbers 列表中,並在每次迭代中將 start 值遞增 2。這可確保最終列表中只包含偶數。

您也可以透過使用者輸入(一個特定數字)來決定序列的結束值。

程式碼輸入:

end_value = int(input("Enter the end value for the sequence: "))

start = 1
user_sequence = []

while start <= end_value:
    user_sequence.append(start)
    start += 1

print(user_sequence)

程式碼輸出:

python list from 1 to n - output 6

此範例會提示使用者輸入序列的結束值。end_value 變數被賦予使用者的輸入,並初始化一個名為 user_sequence 的新列表。

while 迴圈與第一個範例類似,會將 start 的目前值附加到 user_sequence 列表中,同時在每次迭代中將 start 遞增 1。

常見問題

Q1: 如何在 Python 中建立從 1 到 N 的數字列表?

A1: 要在 Python 中建立從 1 到 N 的數字列表,您可以利用 range 函式,或使用列表推導方法。

Q2: 為什麼我們要在 range 函式或列表推導中使用 N + 1?

A2: 是的,您也可以使用迴圈、建立列表,或使用其他內建函式(例如 numpy.arange)來建立類似的列表。

Q3: 在 Python 中建立從 1 到 N 的列表有什麼意義?

A3: 產生這樣的列表是程式設計中常見的任務,適用於各種應用,包括資料操作、演算法實作和數值分析。

產生從 1 到 N 的 Python 列表之結論

Python 提供了豐富的工具集來建立數字列表,讓您可以根據自己的具體需求選擇最合適的方法,無論是透過使用者定義函式、內建函式、NumPy 等函式庫,還是經典的 while 迴圈,Python 的靈活性都體現在它能夠適應多樣的偏好和程式設計風格上。

透過理解這些不同的方法和範例,您可以提升自己在列表產生方面的熟練程度,優化程式碼的可讀性、效率和功能性。