1. 程式人生 > >Python從菜鳥到高手(12):通過索引操作序列元素

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

九月 輸出字符串 二維 多維 負數 輸入 數值 倒數 格式

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])         # 運行結果:Bill
print(names[2])         # 運行結果:Jack

  程序運行結果如下圖所示。

技術分享圖片

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

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

s = "Hello World"
print(s[0])             # 運行結果:H
print(s[3])             # 運行結果:l
print("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])             #  運行結果:Bill
print(names[-1])                #  運行結果:Jack
print(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):通過索引操作序列元素