Day045|Python編程300例之旋轉列表

今天是Andy學Python的第45 天哦! 

大家好,我是Andy。 

01.

項目需求

旋轉列表,就是把列表循環左移k位。

如:輸入a = [1, 2, 3, 4, 5, 6],旋轉左移3位,輸出[4, 5, 6, 1, 2, 3]

02.

拆解任務

2.1所謂循環左移1位,就是先把列表最左端的元素取出,再把這個元素追加到列表的末尾。

採用pop(0)方法取出列表首個元素,採用append()方法,再將取出元素追加到列表末尾。

2.2循環左移k位,採用循環結構,每次將列表首位元素取出放到末尾,一共循環k-1次。


03.

代碼實現

3.1版本1.0 

# 旋轉列表

# Andy 2021-04-01

def rotate_list(list_a, k):

    temp = list_a[:]  # 切片,不影響原列表

    for i in range(k):

        temp.append(temp.pop(0))  # 把左端的元素追加到列表末尾

    return temp

# 主函數

list1 = [1, 2, 3, 4, 5, 6]

print(rotate_list(list1, 3))


該方法使用循環結構,採用pop(0)方法將列表第1位元素刪除,再用append()方法追加到列表尾部。每循環1次,都會引起列表其餘元素前移1位,如是列表中元素較多,會導致效率低下。

嘗試採用切片方式,不引起原列表元素重新移位排序,速度會更快。

3.2

版本2.0

# 旋轉列表

# Andy 2021-04-01

def rotate_list(list_a, k):

    return list_a[k:] + list_a[:k]  # 切片,將原列表一分爲二,再拼接

# 主函數

list1 = [1, 2, 3, 4, 5, 6]

print(rotate_list(list1, 3))

51Day Day up!

向上向善,日進一步!

每天學習,努力成長!

定個小目標,開啓成長的旅程,遇見更好的自己。

這是我們和自己的約定,許諾自己不負韶華。

路雖遠,行則將至;事雖難,做則必成。

成長的最好時機,就是當下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章