gpt4 book ai didi

python - 做列表数学 - python

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:51 24 4
gpt4 key购买 nike

我想从现有列表中创建一个列表。

原文有列表:

mylist = ["single extra", "double double", "tripple, double, singe", "mohan point tripple decker","one","covent gardens london tw45hj", "honda"]

找出mylist中每个标签的单词数:

num_words = [len(sentence.split()) for sentence in mylist]

打印字数

[2, 2, 3, 4, 1, 4, 1]

暂时假设 mylist 是一个长字符串,

"single extra double double tripple double singe mohan point tripple decker one covent gardens london tw45hj honda"

我想弄清楚每个标签在那个长列表中的起始位置。

所以我知道在原始列表“mylist”中第一个索引有 2 个单词,所以它从 0 到 2 开始,然后下一个索引包含 2 个单词,所以它将从 3 到 5 开始,依此类推。 ..

手动数学会像这样:

1 + 2 = 3
3 + 2 = 5
5 + 3 = 8
8 + 4 = 12
12 + 1 = 13
13 + 4 = 17
17 + 1 = 18

我试过这个:

p=0
x=1
for i, item in enumerate(num_words):
result = num_words[p] + num_words[x]
results = result + num_words[x]
x += 1
p += 1

打印结果

但是失败了...

我希望这是有道理的......

谢谢大家

最佳答案

您想做的称为运行总计。您可以使用简单的循环:

>>> res, c = [], 1
>>> for x in num_words:
... c += x
... res.append(c)
>>> res
[3, 5, 8, 12, 13, 17, 18]

也可以用函数式风格一行完成,像这样:

>>> reduce(lambda x, y: x + [x[-1] + y], num_words, [1])[1:]
[3, 5, 8, 12, 13, 17, 18]

关于python - 做列表数学 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18830651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com