gpt4 book ai didi

python - 以所有可能的方式增加每个列表元素

转载 作者:行者123 更新时间:2023-11-28 16:51:12 26 4
gpt4 key购买 nike

我有一个列表:test = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

需要使用 Python 标准库 以所有可能的方式增加每个列表元素。这是一个难题,我已经这样做了:

test = [elem + 1 for elem in test]

for i in range(len(test)): test[i] += 1

test = map(lambda x : x + 1, test)

test = [sum(elem) for elem in zip(test, [1]*len(test))]

还有其他想法吗?

最佳答案

你可以使用递归,(你可以使用 TrueFalse 而不是 10,但这只是疯狂的谈话):

def recurseadd(test):
if test:
return [test[False] + True] + recurseadd(test[True:])
else:
return test

您可以使用 [test[0] + 1].extend(recurseadd(test[1:])) 代替 +

您可以使用 operator.add 而不是 +,使用 functools.partialitertools.imap 如果你想要:

from functools import partial
from operator import add
from itertools import imap

addone = partial(add, 1)

test = list(imap(addone, test)) # don't really use imap if you want a list

您可以使用 itertoolsiziprepeat:

test = [sum(elem) for elem in izip(test, repeat(1))]

另一种带有 sum 的方法,灵感来自 Eren 对 GWW 答案的评论:

test = sum(([x+1] for x in test), [])

您可以使用 xrange 而不是 range,您可以使用 itertools.count(1).next() 生成 1s...

有无数的小变化,但你的三个加上递归版本似乎涵盖了基本的变化。 Eren 的简化版也不错。

关于python - 以所有可能的方式增加每个列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272643/

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