range()
函數通常用于生成一個整數序列,而列表推導式(List Comprehension)則是 Python 中一種簡潔、高效地創建列表的方法。下面我將展示如何使用 range()
函數與列表推導式結合來創建不同類型的列表。
numbers = [i for i in range(10)]
print(numbers) # 輸出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
在這個例子中,range(10)
生成了一個從 0 到 9 的整數序列,然后列表推導式遍歷這個序列并將每個元素添加到新的列表 numbers
中。
squares = [i**2 for i in range(1, 6)]
print(squares) # 輸出:[1, 4, 9, 16, 25]
這里,range(1, 6)
生成了一個從 1 到 5 的整數序列。列表推導式計算每個元素的平方,并將結果存儲在列表 squares
中。
def fibonacci(n):
fib_sequence = [fibonacci_helper(i) for i in range(n)]
return fib_sequence
def fibonacci_helper(i):
if i <= 1:
return i
else:
return fibonacci_helper(i-1) + fibonacci_helper(i-2)
# 計算斐波那契數列的前 10 個數
fib_10 = fibonacci(10)
print(fib_10) # 輸出:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
注意:上面的斐波那契數列實現雖然使用了列表推導式,但效率并不高,因為它使用了遞歸。在實際應用中,通常會使用更高效的算法來計算斐波那契數列。
even_numbers = [i for i in range(1, 21) if i % 2 == 0]
print(even_numbers) # 輸出:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
在這個例子中,range(1, 21)
生成了一個從 1 到 20 的整數序列。列表推導式遍歷這個序列,并使用條件 if i % 2 == 0
來篩選出偶數。
這些示例展示了如何使用 range()
函數和列表推導式來創建不同類型的列表。列表推導式提供了一種簡潔、易讀的方式來創建列表,而 range()
函數則用于生成整數序列。