亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求大神解答python中的計算求和

求大神解答python中的計算求和

慕粉3439496 2016-06-11 10:28:58
請問現在有一個A list和一個B list,每個list中都有100個整數,我想計算得出一個新的c list, c list中的每項是這樣的,A[0],,A[1]+B[0],,A[2]+B[1]+B[0],,A[3]+B[2]+B[1]+B[0]...............A[100]+B[99]+B[98]+B[97]+.......B[1]+B[0],,,,求大神解答?給個簡單的例子吧,假如A = [30,52,84,92],,,B = [4,3,2,1],,,我現在想得到Clist [30,56,91,101]。30即A[0],56即A[1]+B[0],以此類推,但是我現在有很多數據,遠遠超過4個,所以求大神給個程序。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
查看完整描述

3 回答

已采納
?
qq_青棗工作室_0

TA貢獻446條經驗 獲得超754個贊

A?=?[30,52,84,92]
B?=?[4,3,2,1]
C?=?[]
for?i?in?range(len(A)):
????C.append(A[i]?+?sum(B[0:i]))
print?C


查看完整回答
3 反對 回復 2016-06-11
?
清波

TA貢獻165條經驗 獲得超90個贊

既然有人給出, 循環求解列表生成式求解了, 那我就給出另一種解吧:?

強大的BIF

A?=?[30,52,84,92]
B?=?[4,3,2,1]
C?=?map(lambda?x:x[1]+sum(b[0:x[0]]),enumerate(a))

##?Python?3.x?需要對?map?函數?列表化(不建議對map?類型列表化,?否則官方就白白升級map函數了):

C?=?list(map(lambda?x:x[1]+sum(b[0:x[0]]),enumerate(a)))


最后,糾正 提供列表生成式 解答的一點bug, 如果 A 列表中 有重復的元素, 用 A.index(a) 來獲取元素的 index 是錯誤的, 所以建議 列表生成式求解 這么寫:

c?=?[value+sum(b[0:index])?for?index,value?in?enumerate(a)]

我猜 這個才是這個問題的最優解,也許比 map 更快,懶得測試了,有興趣的同學可以試試。

查看完整回答
反對 回復 2016-06-20
?
qq_咖啡丶彼岸_03525439

TA貢獻1條經驗 獲得超0個贊

# 樓上正解, 我再給個邪門歪道(要確保listA中的元素不重復才行)

A?=?[30,52,84,92]
B?=?[4,3,2,1]
print?[a+sum(B[0:A.index(a)])?for?a?in?A]?????#?[30,?56,?91,?101]
查看完整回答
反對 回復 2016-06-17
  • 3 回答
  • 0 關注
  • 2161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號