gpt4 book ai didi

python - 将元素保留在列表中,其数字加起来等于某个值

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:57 25 4
gpt4 key购买 nike

从列表中找出加法为 9 的那些值

aList=[81,26,27,19,108]
output, 81(because: 8+1),27(because: 2+7) and 108 (because:1+0+8)

我尝试了两种方法:

第一种方法:我找不到获取值的方法,只求和

s=[81,18]  
sum=0
for l in s:
while l:
l,dig=divmod(l,10)
sum=sum+dig

print(sum)

第二种方法:确实令人讨厌。从列表中获取单个值,转换为字符串以将它们分开,然后再次转换为 int。

s=[81]  #9

sum=0

for item in s: #81
item=str(item) # 81 to string so I can get 8 and 1
for i in item:
while i:
i =int(i)
i,dig=divmod(i,10)
sum=sum+dig

print(sum,item)

问题:在这两种情况下,它仅在列表中只有一个值时才有效。当我有超过 1 个值 aList=[81,18] 时,它会给出这 2 个值的总和。

我会很感激关于这个的一些提示/想法。提前致谢。

最佳答案

您可以使用以下列表理解:

l = [81,26,27,19,108]
[i for i in l if sum(int(d) for d in str(i)) == 9]
# [81, 27, 108]

相当于下面的for循环:

res = []
for i in aList:
temp = []
for d in str(i):
temp.append(int(d))
if sum(temp) == 9:
res.append(i)

关于python - 将元素保留在列表中,其数字加起来等于某个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com