![](/img/trans.png)
[英]How to sum a list that contains letters by changing certain letters in a list with integers?
[英]Calculating sum of a certain group of integers in a list
所以我對 python 非常陌生,我正在嘗試制作一個基於文本的類似 rpg 的東西,它涉及第一個房間有 2 個出口(左或右),然后每一行房間都有最后一個房間和每個變量都是一個從 0 到 3(退出數量)的隨機整數,如下所示:
a = [2]
print(a)
import random
b = []
for i in range(0,2):
x = random.randint(0,3)
b.append(x)
print(b)
b_sum = sum(b)
import random
c = []
for i in range(0,b_sum):
x = random.randint(0,3)
c.append(x)
print(c)
c_sum = sum(c)
import random
d = []
for i in range(0,c_sum):
x = random.randint(0,3)
d.append(x)
print(d)
d_sum = sum(d)
import random
e = []
for i in range(0,d_sum):
x = random.randint(0,3)
e.append(x)
print(e)
e_sum = sum(e)
import random
f = []
for i in range(0,e_sum):
x = random.randint(0,3)
f.append(x)
print(f)
f_sum = sum(f)
import random
g = []
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)])
我在這里試圖做的是找到當前“房間”之前的列表中每個整數的總和。 但我不知道該怎么做! 任何幫助將不勝感激,非常感謝!
好像您正在尋找類似的東西:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.