如何將list中元素依次向前移動一位

老齊Py發表於2014-07-10

問題

定義一個int型的一維陣列,包含10個元素,分別賦值為1~10, 然後將陣列中的元素都向前移一個位置,

即,a[0]=a[1],a[1]=a[2],…最後一個元素的值是原來第一個元素的值,然後輸出這個陣列。

解決(Python)

#!/usr/bin/env python
#coding:utf-8


def ahead_one():
    a = [i for i in range(10)]
    b = a.pop(0)
    a.append(b)
    return a

if __name__ =="__main__":
    print ahead_one()

解決(racket 5.2.1)

#lang racket

; 定義函式 ahead-one
; 輸入為一個整數列表 int-list,假設其長度為 N
; 輸出為長度相同的整數列表,其第 N 位的元素為 int-list 的第 1 位的元素,
; 其 1~N-1 位的元素為 int-list 的第 2~N 位的元素
(define (ahead-one int-list)
  (append (rest int-list) (list (first int-list))))

; 函式呼叫,正常執行時應輸出 `(2 3 4 5 6 7 8 9 10 1)
(ahead-one (list 1 2 3 4 5 6 7 8 9 10))

相關文章