求列表平衡點

data = [1,3,5,7,8,25,4,20]
25之前總和爲24,之後總和也是24,那麼25就是平衡點
求寫編程 尋找並返回任意一個列表的平衡點


filter
Python內建的filter()函數用於過濾序列。
和map()類似,filter()也接收一個函數和一個序列。和map()不同的時
filter()把傳入的函數依次作用於每個元素,
然後根據返回值是True還是False決定保留還是丟棄該元素。
例如,在一個list中,刪掉偶數,只保留奇數,可以這麼寫:

def is_odd(n):
    return n % 2 == 1

filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
# 結果: [1, 5, 9, 15]

so……….
這個問題可以這麼做,用filter或者列表解析
代碼如下:

n = filter(lambda i:sum(data[:i]) == sum(data[i+1:]),range(1,len(data)-1))
print(list(n))

#或者列表解析
a =[data[i]for i in range(1,len(data)-1) if sum(data[:i] )== sum(data[i+1:]) ]
print(a)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章