用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
为了解决这个问题,我们将遵循以下步骤-
定义一个系列。
创建一个空列表并设置循环以访问所有系列数据。
将armstrong初始值设置为0,并创建临时变量以逐一存储系列元素。它的定义如下
l = [] for val in data: armstrong = 0 temp = val
创建while循环,并检查temp>0并按temp%10计算余数。通过取余数的立方来添加armstrong值,然后将温度值除以10,直到达到0,以终止循环。它的定义如下
while(temp>0): rem = temp % 10 armstrong = armstrong + (rem**3) temp = temp //10
设置是否将原始值与温度值进行比较的条件。如果匹配,则将值附加到列表中。
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