溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-07-20 09:23:42 來源:網(wǎng)絡 閱讀:1992 作者:androidguy 欄目:編程語言

1.定義序列

  本文將介紹一下在Python語言中如何定義序列。定義序列的語法與Java中的數(shù)組類似,使用一對中括號將序列中的元素值括起來。
下面的例子創(chuàng)建一個元素類型是字符串的序列,實現(xiàn)代碼如下:

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

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

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

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

  序列的每一個元素還可以是另外一個序列,其實這么定義就相當于一個二維或多維數(shù)組。

  本例創(chuàng)建一個二維序列,每一個序列的元素值的類型是一個序列。

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']] #  創(chuàng)建二維序列
for value in values:                            #  輸出二維序列
    print(value)

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

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

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

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

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

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

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

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

  在上面的代碼中,通過索引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

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

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

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

  通過input輸入的字符串也可以通過索引引用其中的某個字符。
  本例輸入一個年份,如果只對年份的最后一個字符感興趣,獲取使用索引截取年份的最后一位數(shù)字。

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

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

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

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

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

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

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

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

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

  本例使用索引4和-4引用names序列中的元素值,這兩個索引都超出了names序列的索引范圍,所以會拋出異常。不過當?shù)?個異常拋出時,后面的語句都不會執(zhí)行了。

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

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

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

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

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

# 將中文月份放到序列中
months = [
    '一月',
    '二月',
    '三月',
    '四月',
    '五月',
    '六月',
    '七月',
    '八月',
    '九月',
    '十月',
    '十一月',
    '十二月'
    ]
year = input("年:")              # 輸入年
month = input('月(1-12):')           # 輸入月
day = input('日(1-31):')         # 輸入日

monthNumber = int(month)            # 將字符串形式的月轉換為數(shù)值形式的月

monthName = months[monthNumber - 1]                 # 從序列中獲取中文的月份
print(year + "年 " + monthName + " " + day + "日")        # 按指定格式輸入年月日

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

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

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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI