編寫一個Python程式,用於在一個給定的序列中過濾阿姆斯特朗數。
假設你有一個序列,需要過濾出阿姆斯特朗數的結果。
original series is 0 153 1 323 2 371 3 420 4 500 dtype: int64 Armstrong numbers are:- 0 153 2 371 dtype: int64
為了解決這個問題,我們將遵循以下步驟:
定義一個序列。
建立一個空列表和一個for迴圈來訪問所有序列資料。
設定阿姆斯特朗數的初始值為0,並建立一個臨時變數來逐個儲存序列元素。定義如下:
l = [] for val in data: armstrong = 0 temp = val
建立一個while迴圈,檢查temp>0,並計算temp%10的餘數。透過對餘數取立方來累加阿姆斯特朗數值,並將temp值除以10,直到它達到0以終止迴圈。定義如下:
while(temp>0): rem = temp % 10 armstrong = armstrong + (rem**3) temp = temp // 10
設定if條件來比較原始值和temp值。如果匹配,則將值新增到列表中。
if(armstrong==val): l.append(val)
最後,使用isin()檢查列表值是否出現在序列中。定義如下:
data[data.isin(l)]
示例
讓我們看看下面的程式碼來更好地理解實現:
import pandas as pd
data = pd.Series([153,323,371,420,500])
print("original series is\n", data)
l = []
for val in data:
armstrong = 0
temp = val
while(temp>0):
rem = temp % 10
armstrong = armstrong + (rem**3)
temp = temp // 10
if(armstrong==val):
l.append(val)
print("Armstrong numbers are:-")
print(data[data.isin(l)])輸出
original series is 0 153 1 323 2 371 3 420 4 500 dtype: int64 Armstrong numbers are:- 0 153 2 371 dtype: int64
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP