Python從菜鳥到高手(12):通過索引操作序列元素

來源:互聯網
上載者:User

標籤:通過   相同   image   flags   輸出   log   一個   輸入   視頻   

1.定義序列

  本文將介紹一下在Python語言中如何定義序列。定義序列的文法與Java中的數組類似,使用一對中括弧將序列中的元素值括起來。
下面的例子建立一個元素類型是字串的序列,實現代碼如下:

names = ["Bill", "Mary", "Jack"]

  同一個序列,不僅可以包含相同類型的值,還可以包含不同類型的值。
下面的例子在一個序列中放置不同類型的值,實現代碼如下:

values = ["Bill", 30,12.5, True]

  在上面的代碼中,values序列中包含了4個元素值,這4個元素值是不同的資料類型,分別是字串("Bill")、整數(30)、浮點數(12.5)和布爾類型。

  序列的每一個元素還可以是另外一個序列,其實這麼定義就相當於一個二維或多維陣列。

  本例建立一個二維序列,每一個序列的元素值的類型是一個序列。

names = ["Bill", "Mike"]numbers = [1,2,3,4,5,6]salary=[3000.0,4000.0,5000.0]flags = [True,False,True,True]values = [names,numbers,salary,flags,[‘a‘,‘b‘]] #  建立二維序列for value in values:                            #  輸出二維序列    print(value)

程式運行結果如所示。

2.通過索引操作序列元素

  序列中的所有元素都是有編號的,編號從0開始遞增。序列中的所有元素都可以通過編號訪問,這個編號被稱為索引。

下面的例子訪問並輸出序列names中的第1個和第3個元素。

names = ["Bill", "Mary", "Jack"]print(names[0])         # 運行結果:Billprint(names[2])         # 運行結果:Jack

  程式運行結果如所示。

  在上面的代碼中,通過索引0和索引2,分別擷取了names序列中的第1個和第3個元素值。Python語言中的字串也可以通過索引擷取特定的字元。

  本例通過索引擷取並輸出字串s中的第1個和第4個字元,以及擷取“Apple”的第3個字元。

s = "Hello World"print(s[0])             # 運行結果:Hprint(s[3])             # 運行結果:lprint("Apple"[2])           # 運行結果:p

程式運行結果如所示。

  在上面的代碼中,通過索引0和索引3,分別擷取了字串s中的第1個和第4個字元。然後通過索引2擷取了字串“Apple”的第3個字元。

  通過input輸入的字串也可以通過索引引用其中的某個字元。
  本例輸入一個年份,如果只對年份的最後一個字元感興趣,擷取使用索引截取年份的最後一位元字。

fourth = input(‘請輸入年份:‘)[3]print(fourth)                   

程式運行結果如所示。

  如果索引是0或正整數,那麼Python語言會從序列左側第1個元素開始取值,如果索引是負數,那麼Python語言會從序列右側第1個元素開始取值。序列最後一個元素的索引是-1,倒數第2個元素的索引是-2,以此類推。

  本例通過索引擷取names序列中的第1個元素值,以及通過負數索引擷取names序列中倒數第1個和倒數第2個元素值。

names = ["Bill", "Mary", "Jack"]print(names[0])             #  運行結果:Billprint(names[-1])                #  運行結果:Jackprint(names[-2])                #  運行結果:Mary

程式運行結果如所示。

  當索引超過序列的索引範圍時,會拋出異常。

  本例使用索引4和-4引用names序列中的元素值,這兩個索引都超出了names序列的索引範圍,所以會拋出異常。不過當第1個異常拋出時,後面的語句都不會執行了。

names = ["Bill", "Mary", "Jack"]print(names[4])                     #  索引超出names序列的範圍,將導致拋出異常print(names[-4])                        #  索引超出names序列的範圍,將導致拋出異常

程式運行結果如所示。

  在上面的代碼中,無論是索引4,還是索引-4,都超過了names序列索引的範圍(-3 <= 索引範圍 <= 2),所以會拋出異常。

  本例要求輸入年、月、日,並將月轉換為中文輸出,如輸入的月份是4,要求輸出“四月”。

# 將中文月份放到序列中months = [    ‘一月‘,    ‘二月‘,    ‘三月‘,    ‘四月‘,    ‘五月‘,    ‘六月‘,    ‘七月‘,    ‘八月‘,    ‘九月‘,    ‘十月‘,    ‘十一月‘,    ‘十二月‘    ]year = input("年:")              # 輸入年month = input(‘月(1-12):‘)           # 輸入月day = input(‘日(1-31):‘)         # 輸入日monthNumber = int(month)            # 將字串形式的月轉換為數值形式的月monthName = months[monthNumber - 1]                 # 從序列中擷取中文的月份print(year + "年 " + monthName + " " + day + "日")        # 按指定格式輸入年月日

程式運行結果如所示。

《Python從菜鳥到高手》已經出版,開始連載了,購買送視頻課程

Python從菜鳥到高手(12):通過索引操作序列元素

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.