溫馨提示×

利用range函數(shù)進(jìn)行列表推導(dǎo)式的應(yīng)用示例

小樊
87
2024-09-04 08:01:27
欄目: 編程語言

range() 函數(shù)通常用于生成一個整數(shù)序列,而列表推導(dǎo)式(List Comprehension)則是 Python 中一種簡潔、高效地創(chuàng)建列表的方法。下面我將展示如何使用 range() 函數(shù)與列表推導(dǎo)式結(jié)合來創(chuàng)建不同類型的列表。

示例 1:創(chuàng)建一個包含從 0 到 9 的整數(shù)的列表

numbers = [i for i in range(10)]
print(numbers)  # 輸出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

在這個例子中,range(10) 生成了一個從 0 到 9 的整數(shù)序列,然后列表推導(dǎo)式遍歷這個序列并將每個元素添加到新的列表 numbers 中。

示例 2:創(chuàng)建一個包含平方數(shù)的列表

squares = [i**2 for i in range(1, 6)]
print(squares)  # 輸出:[1, 4, 9, 16, 25]

這里,range(1, 6) 生成了一個從 1 到 5 的整數(shù)序列。列表推導(dǎo)式計算每個元素的平方,并將結(jié)果存儲在列表 squares 中。

示例 3:創(chuàng)建一個包含斐波那契數(shù)列的列表(前 n 個數(shù))

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)

# 計算斐波那契數(shù)列的前 10 個數(shù)
fib_10 = fibonacci(10)
print(fib_10)  # 輸出:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

注意:上面的斐波那契數(shù)列實(shí)現(xiàn)雖然使用了列表推導(dǎo)式,但效率并不高,因?yàn)樗褂昧诉f歸。在實(shí)際應(yīng)用中,通常會使用更高效的算法來計算斐波那契數(shù)列。

示例 4:創(chuàng)建一個包含指定范圍內(nèi)所有偶數(shù)的列表

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 的整數(shù)序列。列表推導(dǎo)式遍歷這個序列,并使用條件 if i % 2 == 0 來篩選出偶數(shù)。

這些示例展示了如何使用 range() 函數(shù)和列表推導(dǎo)式來創(chuàng)建不同類型的列表。列表推導(dǎo)式提供了一種簡潔、易讀的方式來創(chuàng)建列表,而 range() 函數(shù)則用于生成整數(shù)序列。

0