小编wat*_*855的帖子

项目Euler#2 - Python v3.2.3

我在Project Euler上的问题2遇到了麻烦.目标是找到Fibonacci序列中偶数值的总和,其值不超过四百万.由于某种原因,我一直得到0作为我的输出.我究竟做错了什么?

total = 0
count = 0
term = 0
fibonacciMemo = {0:0, 1:1}

def main ():
    term = fibonacci (count)
    while (term <= 4000000):
        if (term % 2 == 0):
            total += term
        count += 1

def fibonacci (n):
    if not n in fibonacciMemo:
        fibonacciMemo [n] = fibonacci (n - 1) + fibonacci (n - 2)
    return fibonacciMemo [n]

print (total)
Run Code Online (Sandbox Code Playgroud)

python memoization fibonacci

1
推荐指数
1
解决办法
484
查看次数

将多个嵌套列表转换为整数

我在列表中有一个列表,并且想要将所有值更改为整数。我已经做到了,但是假设我让用户指定了列表中他们将拥有多少个列表。如何将所有这些值都转换为整数?

我有以下代码,该代码当前接受任何列表或列表中的任何列表,并将所有值转换为整数。我可以看到如何将其扩展到列表中的更多列表,但这可能是不必要的,或者可能还不够。当然,这似乎很慢并且需要很多代码。

for i in l:
    index = l.index(i)
    l[index] = list(map(int, l[index]))
Run Code Online (Sandbox Code Playgroud)

我的清单是l,其中的每个清单l都是i。我获取我所处位置的索引,并将其中的所有值转换为整数。我如何创建一个函数/循环,以接收列表中有多少个列表,并将它们全部转换为整数?

例如在此输入上:

l = [['6', '5'], '7', ['88', '99', '1']]
Run Code Online (Sandbox Code Playgroud)

上面的代码将返回:

[[6, 5], 7, [88, 99, 1]]
Run Code Online (Sandbox Code Playgroud)

但是,如果我有:

l = [['6', '7'], ['6', ['7', '8']]]
Run Code Online (Sandbox Code Playgroud)

我收到错误:

"TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'"
Run Code Online (Sandbox Code Playgroud)

我知道这是因为我仅转换嵌套在列表中的列表,而不转换嵌套在列表中的列表中的列表,因此它认为我正在尝试将整个列表转换为整数。

长话短说,我如何构建一个可以将任意数量的嵌套列表转换为整数的函数?

python int list type-conversion python-3.x

1
推荐指数
1
解决办法
90
查看次数