【问题标题】:Python why I can't add a list to a list?Python为什么我不能将列表添加到列表中?
【发布时间】:2023-04-03 06:02:01
【问题描述】:

我有以下代码,我应该使用 8 个数字(只有 1、3、5、7、9)找到所有可用的组合,我必须将它们相加并得到总和 20,例如:

import random
import time
numbers = [1,3,5,7,9]
values = []
combinations = 0
combinations_found = []

while combinations != 11:
    n = random.randint(0,len(numbers)-1)
    n = numbers[n]    
            
    if len(values) >= 8:
        if sum(values) == 20:
            values.sort()
            combinations_found.sort()
            if [values] in combinations_found:
                values.clear()
                None
            else:
                combinations_found.append(values)
                combinations +=1

        values.clear()        
        
    else:
        values.append(n)

问题是当它找到一个组合时,它没有将它添加到我的变量combinations_found中,有什么帮助吗?

【问题讨论】:

    标签: python list variables combinations


    【解决方案1】:

    不要使用values.clear()。这会重复使用附加到 combinations_found 的相同列表,因此您始终会附加 same 列表引用。当你清除它时,你最终会得到一堆对空列表的引用。

    改为使用values = [] 开始一个新列表。

    【讨论】:

    • 为什么还会存在.clear() 这样的方法? Python 似乎非常喜欢“重新定义”一个变量,而不是几乎在任何地方都“重用”它。您是否有任何优先使用重用的示例?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    相关资源
    最近更新 更多