首頁 > 軟體

python中的[1:]、[::-1]、X[:,m:n]和X[1,:]的使用

2022-08-01 14:03:02

Python中的[1:]

意思是去掉列表中第一個元素(下標為0),去後面的元素進行操作,以一個範例題為例,用在遍歷中統計個數:
題:讀入N名學生的成績,將獲得某一給定分數的學生人數輸出。

輸入格式:

輸入在第1行給出不超過10^5^的正整數N,即學生總人數。隨後1行給出N名學生的百分制整數成績,中間以空格分隔。最後1行給出要查詢的分數個數K(不超過N的正整數),隨後是K個分數,中間以空格分隔。

輸出格式:

在一行中按查詢順序給出得分等於指定分數的學生人數,中間以空格分隔,但行末不得有多餘空格。

stu_num = input('請輸入學生總人數:')
stu_grade = input('請輸入每位學生的成績(百分制),並以空格分開:').split()  # 將如數的字串轉化成列表
num_and_grade = input('請輸入要統計幾個分數,以及每個分數值,以空格分開:').split()  # 轉成列表格式
result = []  # 定義一個新列表儲存結果
for i in num_and_grade[1:]:   # 定義變數i,遍歷num_and_grade[]列表中除了第一個元素的其他元素
    result.append(str(stu_grade.count(i)))  # 利用Python的count()函數統計相應i值在列表stu_grade[]列表中的個數,轉換成字串格式並追加到result[]列表中
print(" ".join(result))  # 列表轉換成字串格式,列印結果

結果:

請輸入學生總人數:10
請輸入每位學生的成績(百分制),並以空格分開:88 99 75 88 95 42 78 88 95 99
請輸入要統計幾個分數,以及每個分數值,以空格分開:3 88 99 95
3 2 2

Python中的[::-1]

這個是python的slice notation的特殊用法。
b = a[i:j] 表示複製a[i]到a[j-1],以生成新的list物件
當i預設時,預設為0,即 a[:3]相當於 a[0:3]
當j預設時,預設為len(alist), 即a[1:]相當於a[1:10]
當i,j都預設時,a[:]就相當於完整複製一份a了

b = a[i:j:s]這種格式呢,i,j與上面的一樣,但s表示步進,預設為1.
所以a[i:j:1]相當於a[i:j]
當s<0時:i預設時,預設為-1; j預設時,預設為-len(a)-1
所以a[::-1]相當於 a[-1:-len(a)-1:-1],也就是從最後一個元素到第一個元素複製一遍。

a = ['a','b','c','d','e','f','g','h','g','k','l','m']
b = a[:]  # 列表切片,表示把列表a[]的值全部正序複製到列表b[]中
print(b)  # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'g', 'k', 'l', 'm']
# b = a[n:m]表示列表切片,複製列表a[n]到a[m-1]的內容到新的列表物件b[]
# 當n預設時,預設為0,即a[:m]
# 當m預設時,預設到最後,即a[n:]
b1 = a[1:4]
print(b1)  # ['b', 'c', 'd']
b2 = a[:3]
print(b2)  # ['a', 'b', 'c']
b3 = a[1:]
print(b3)  # ['b', 'c', 'd', 'e', 'f', 'g', 'h', 'g', 'k', 'l', 'm']
# b = a[i:j:s]這種格式呢,i,j與上面的一樣,但s表示步進,預設為1,s可以取任何數位.
# 所以a[i:j:1]相當於a[i:j]
b4 = a[1:5:2]
print(b4)  # ['b', 'd']
b5 = a[:5:-1]  # 從末尾倒數取值
print(b5)  # ['m', 'l', 'k', 'g', 'h', 'g']
b6 = a[5::-2]
print(b6)  # 從a[n]處倒數取值
b7 = a[::-1]  # 到這取值
print(b7)  # ['m', 'l', 'k', 'g', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']

輸出結果:

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'g', 'k', 'l', 'm']
['b', 'c', 'd']
['a', 'b', 'c']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'g', 'k', 'l', 'm']
['b', 'd']
['m', 'l', 'k', 'g', 'h', 'g']
['f', 'd', 'b']
['m', 'l', 'k', 'g', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']

Python中的X[:,m:n]和X[1,:]

X[:,0]是numpy中陣列的一種寫法,表示對一個二維陣列,取該二維陣列第一維中的所有資料,第二維中取第0個資料,直觀來說,X[:,0]就是取所有行的第0個資料, X[:,1] 就是取所有行的第1個資料。

X[n,:]是取第1維中下標為n的元素的所有值。

X[:,  m:n],即取所有資料的第m到n-1列資料,含左不含右

import numpy as np
X = np.array([[0,1,2,3],[4,5,6,7],[8,9,10,11],[12,13,14,15]])  # 定義二維陣列
print(X[:,0])  # 取陣列X二維陣列中每一個的0號下標對應的值 [0 4 8 12]
print(X[1,:])  # 取陣列X一維陣列中的第一組全部數值  [0 1 2 3]
print(X[:,1:3])  #取所有資料的第1列到3-1列資料,從第0列開始計算,結果如下:
'''
[[1 2]
 [5 6]
 [9 10]
 [13 14]]
'''

到此這篇關於python中的[1:]、[::-1]、X[:,m:n]和X[1,:]的使用的文章就介紹到這了,更多相關python [1:]、[::-1]、X[:,m:n]和X[1,:]內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com