簡體   English   中英

如何僅評估少數元素的列表總和

[英]How to evaluate the sum of list only for few elements

我有列表和 k = 8(最大和)。 我想添加列表中總和等於或小於 k = 8 的元素,並且我只想要添加的元素數量。

我嘗試過的:

lst = [1,2,3,4,7,9,12]
final = []
sum = 0
for i in range(len(lst)):
    if sum < 8:
        sum = sum +i
        final.append(i)
print(final)         

該列表已排序。 它可能未按用戶輸入排序。 首先,我將對列表進行排序。 然后我將檢查條件並一一添加並僅附加那些元素。

由於此代碼沒有按照我的意願提供正確的輸出,我該怎么辦?

正如 Aravind 所說。 i是索引而不是值

lst = [1,2,3,4,7,9,12]
final = []
sum = 0
for item in lst:
    if sum < 8:
        sum = sum +item
        final.append(item)
print(final)

並且根據 Ram。你不應該使用sum作為變量。是 python 中的一個關鍵字。

從我從你的問題中了解到的。

您將獲得一個元素列表(不一定已排序)和一個值k 您必須返回總和小於或等於k的列表項。

這是代碼

lst = [1,2,3,4,7,9,12]
lst.sort()
final = []
sums = 0
k = 10
for i in lst:
    if sums + i <= k:
        sums = sums + i
        final.append(i)
print(final)

# Output

final = [1, 2, 3, 4]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM