我想在嵌套列表 Python 中附加列表

I want to append list in nested list Python

expression = ['+', '10', 'x']
variables = {"x": (3,4)}
new_expression = []

for key, value in variables.items():
    key_index = expression.index(key)
    
    for i in range(3,5):
        expression[key_index] = i
        new_expression.append(expression)
        
print("new_expression",  new_expression)  

结果是 new_expression = [['+', '10', 4], ['+', '10', 4]]

但我想要 new_expression = [['+', '10', 3], ['+', '10', 4]]

new_expression.append(expression)改为new_expression.append(expression[:])即可。 原因是如果你附加 expressionnew_expression 中的每个元素将指向同一个对象。我们需要通过复制来引发一个新的对象。

expression = ['+', '10', 'x']
variables = {"x": (3,4)}
new_expression = []

for key, value in variables.items():
    key_index = expression.index(key)
    
    for i in range(3,5):
        expression[key_index] = i
        new_expression.append(expression[:])
        
print("new_expression",  new_expression)  

您可能希望将 for i in range(3,5): 更改为 for i in value:,因为您已经在 variables.

中定义了值

精简版:

expression_template = ['+', '10', 'x']
variables = {"x": (3,4)}
new_expression = []

for key, value in variables.items():
    key_index = expression_template.index(key)
    
    for i in value:
        expression = expression_template[:]
        expression[key_index] = i
        new_expression.append(expression)
        
print("new_expression",  new_expression)