如何在python中更新for循环中的值?
假设我有一个具有以下值的变量列表如何在python中更新for循环中的值?,python,Python,假设我有一个具有以下值的变量列表 a,b,c=1,2,3 如何更新for循环中a、b、c的值 我试过以下方法,但不起作用 (a,b,c)中的v: v=v+1 a、b、c的值在处理后保持不变 打印(a、b、c) # [1] 1 2 3 试试这个: a, b, c = [v+1 for v in (a,b,c)] 使用列表或口述 如果有许多相关变量,最好将它们存储在列表或dict中。与具有许多独立变量相比,这有许多优点: 易于对所有文件执行操作(如更新、打印、保存) 不要在代码/命名空间中乱放
a,b,c=1,2,3
如何更新for循环中a、b、c
的值
我试过以下方法,但不起作用
(a,b,c)中的v:
v=v+1
a、b、c的值在处理后保持不变
打印(a、b、c)
# [1] 1 2 3
试试这个:
a, b, c = [v+1 for v in (a,b,c)]
使用列表或口述
如果有许多相关变量,最好将它们存储在列表
或dict
中。与具有许多独立变量相比,这有许多优点:
易于对所有文件执行操作(如更新、打印、保存)
不要在代码/命名空间中乱放太多变量
更好的可维护代码:如果您需要添加/删除变量,更改的位置更少
更新for循环中的值
将其与更新循环中的单独变量进行比较
a,b,c=[v+1表示(a,b,c)中的v]
这将创建一个包含新值的中间列表,将这些值分配给变量,然后再次丢弃该列表。这是一个不必要的中间步骤,但不是一个大问题
这样做的真正问题是,您仍然必须写出每个变量名两次。与仅仅编写a,b,c=a+1,b+1,c+1
相比,这几乎不是一个进步,我认为您必须手动完成。这里a,b,c是通过引用来调用的,因此,更新只存在于局部变量v
而不是a,b,c
,我不太清楚你想要实现什么,为什么for循环?@CosmosZhu你所说的引用是什么意思?我不熟悉这一点,谷歌搜索只会让我更加困惑。@Cosmos547简单地说,这意味着在for循环期间,操作不适用于原始变量。您实际上是在分配变量v
,这确实不会改变变量a
,b
或c
。您必须按名称分配变量,但一旦分配,通常会走错方向。可能有更好的方法来解决您试图在这里实现的任何问题,从而使这个问题变得毫无意义。
# example using a dict
# give them a meaningful name
counters = {"a": 1, "b": 2, "c": 3}
for key in counters:
counters[key] += 1