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
参数。请务必阅读我作为问题注释发布的链接。