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

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

計算列表中特定整數組的總和

計算列表中特定整數組的總和

慕姐8265434 2022-09-13 19:14:09
因此,我對python非常陌生,并且我正在嘗試制作一個基于文本的類似rpg的東西,該事物涉及具有2個出口(左側或右側)的第一個房間,之后的每行房間都有最后一個房間之和的整數量,每個變量都是從0到3(退出量)的隨機整數, 這樣:a = [2]print(a)import randomb = []for i in range(0,2):    x = random.randint(0,3)    b.append(x)print(b)b_sum = sum(b)import randomc = []for i in range(0,b_sum):    x = random.randint(0,3)    c.append(x)print(c)c_sum = sum(c)import randomd = []for i in range(0,c_sum):    x = random.randint(0,3)    d.append(x)print(d)d_sum = sum(d)import randome = []for i in range(0,d_sum):    x = random.randint(0,3)    e.append(x)print(e)e_sum = sum(e)import randomf = []for i in range(0,e_sum):    x = random.randint(0,3)    f.append(x)print(f)f_sum = sum(f)import randomg = []for i in range(0,f_sum):    x = random.randint(0,3)    g.append(x)print(g)這工作正常,但導航已被證明很難。rowlist = [a,b,c,d,e,f,g,h,ii]row = (rowlist[0])room = (a[0])print(room)if room == 2:    door=str(input("left or right"))    if door == "left":        roomsum = sum(row[row < room (+1)])我在這里試圖做的是找到當前“房間”之前的列表中的每個整數的總和。但我不知道如何做到這一點!任何幫助將不勝感激,非常感謝!
查看完整描述

1 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

看起來你正在尋找這樣的東西:


import random


big_list = [[2]]


for _ in range(1,5):  # increase to create more "rooms"

    big_list.append( [random.randint(0,3) for _ in range(sum(big_list[-1]))])


total = 0

for inner in big_list:

    print(inner, "before:", total)

    total += sum(inner) 

生成如下列表:


[2] before: 0

[3, 1] before: 2

[2, 3, 1, 1] before: 6

[1, 1, 2, 0, 2, 2, 2] before: 13

[2, 3, 0, 2, 3, 2, 2, 1, 0, 2] before: 23

由于隨機性,您還可能得到:


[2] before: 0

[0, 1] before: 2

[0] before: 3

[] before: 3

[] before: 3

列表中的部分和可以通過 sum 或列表切片和 sum 中的生成器表達式獲得:


lol = [[1,2,3], [4,5,6,7,8,9,10,11,12], [13,14,15,16,17]]


idx_in_lol   = 1      # [4,5,6,7,8,9,10,11,12]


idx_in_inner = 5      # [4,5,6,7,8,***9***,10,11,12]


# generator expression and enumerate     

s1 = sum( i if idx < idx_in_inner else 0 for idx,i in enumerate(lol[idx_in_lol]))


# or by slicing

s2 = sum( lol[idx_in_lol][:idx_in_inner] )


print(s1, s2) 

輸出:


30 30 #  4+5+6+7+8 = 30


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 87 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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