Python 我可以使用列表元素作为变量吗?
我希望能够根据元素在列表中的位置移动列表中的元素,其中该位置定义为我可以更改的函数中的变量。为什么下面的代码不起作用Python 我可以使用列表元素作为变量吗?,python,Python,我希望能够根据元素在列表中的位置移动列表中的元素,其中该位置定义为我可以更改的函数中的变量。为什么下面的代码不起作用 a = list("abcd") b = list("efgh") def move(start,end): end = start start = "." move(a[1],b[3]) a[1]和b[3]的值作为参数传递给move,而不是表达式本身移动(a[1],b[3])等同于a和b)移动(“b”,“h”) 在函数内部,您所做的只是更改本地
a = list("abcd")
b = list("efgh")
def move(start,end):
end = start
start = "."
move(a[1],b[3])
a[1]
和b[3]
的值作为参数传递给move
,而不是表达式本身<代码>移动(a[1],b[3])等同于a
和b
)移动(“b”,“h”)
在函数内部,您所做的只是更改本地名称end
和start
的值,而不是以任何方式修改a
和b
的值
要执行您似乎想要的操作,move
需要接收两个列表以及作为参数的索引。比如说,
def move(l1, l2, start, end):
l2[end] = l1[start]
l1[start] = "."
move(a, b, 1, 3)
你需要阅读,这不是问题所在。当我这样做的时候,用a[1]和b[3]替换开始和结束变量是有效的。问题是用变量表示字符串放置,因为它不是C++,不能引用整数,并希望改变它。取而代之的是使用
列表
s交换函数中的元素。两者都不是起点或终点;它们指的是这两个列表。您需要将a[1]
拆分为要编制索引的列表(a
)和索引本身(1
),并将它们作为单独的参数传递。在函数内部,您知道(因为您定义了参数列表)哪个索引与哪个列表相匹配l1
和start
对应于原始的start
参数。请务必阅读我作为问题注释发布的链接。