2024-04-18 07:19:42 发布
网友
我不知道如何循环变量,给它们赋值。在
a = 1; b = 2; c = 3 for x in [a, b, c]: print(x) 1 2 3 for x in [a, b, c]: x = x * 2 for x in [a, b, c]: print(x) 1 2 3
这应该可以做到:
abc = [1, 2, 3] for i in range(len(abc)): abc[i] *= 2
您可以使用列表理解和元组解包。在
a = 1 b = 2 c = 3 a, b, c = [i * 2 for i in [a, b, c]] print(a, b, c) # 2 4 6
当你迭代一个列表时,像这样:for x in [a, b, c]:你在做什么 正在做的是告诉python解释器创建一个变量x,该变量被反复分配不同的值。这些值是a、b和{}的值。在
for x in [a, b, c]:
x
a
b
这里需要注意的是,x不引用a,b和{}。也就是说,x不是{}的别名。这是一个不同的变量,刚好有相同的值。在
你可以这样想:
有一个人叫First Middle Last。他的名字是First,他的中间名是Middle,他的第三个名字是Last。这个人穿着一件红色的毛衣。在
First Middle Last
First
Middle
Last
不管有人叫他First还是Middle,这都无关紧要,这两个名字都指同一个人。如果你说First now wears a blue sweater,然后问What colour is Middle's sweater,答案应该是blue。这是因为First和{}都指同一个人。在
First now wears a blue sweater
What colour is Middle's sweater
blue
然而,这并不是在迭代中发生的事情。在您的例子中,x不是到a什么是First。相反,发生的事情更接近于此。在
你有三个人,John,Jane和{}(a,b,c)。John有一件blue毛衣,Jane有一件red毛衣,Doe有一件green毛衣。这就是a的值是1,b的值是{},而{}的值是{}。在
John
Jane
c
red
Doe
green
1
你一个接一个地问他们,他们的毛衣是什么颜色的。当你发现后,你会说,James, a person different from John, Jane or Doe, now has the same colour sweater。如果你随后改变了詹姆斯毛衣的颜色,这对约翰、简或多伊都没有影响。在
James, a person different from John, Jane or Doe, now has the same colour sweater
这是一个解释为什么你的代码没有做你想要它做的事情。在
至于修复方法,一种可能的Python式方法是这样做的。在
map(lambda x: x*2, [a, b, c])
更广泛地说,map(transformation, array)。在
map(transformation, array)
让我们看一下代码。如果您使用here,您将找到map的定义。在
map
如您所见,map是一个内置函数,它接受第一个参数a函数。在我们的例子中,我们希望函数是乘以2。在
为此,我们可以做lambda x: x*2,它定义了一个接受x并返回{}的函数,也可以显式地定义该函数。在
lambda x: x*2
不管选择什么,这个想法仍然有效,您将给一个map的第一个参数,该函数以您想要的方式转换输入。在
本例中的输入依次是数组的每个元素。为了使这一点更加明确,让我们逐行执行示例。在
调用map(multiply_by_two, [1, 2, 3])将转换为[multiply_by_two(1), multiply_by_two(2), multiply_by_two(3)],而这又将变成[1 * 2, 2 * 2, 3 * 2]。这将最终在[2, 4, 6]中转换,map(multiply_by_two, [1, 2, 3])调用的结果。在
map(multiply_by_two, [1, 2, 3])
[multiply_by_two(1), multiply_by_two(2), multiply_by_two(3)]
[1 * 2, 2 * 2, 3 * 2]
[2, 4, 6]
我希望这能帮助您更好地理解python。在
这应该可以做到:
您可以使用列表理解和元组解包。在
当你迭代一个列表时,像这样:}的值。在
for x in [a, b, c]:
你在做什么 正在做的是告诉python解释器创建一个变量x
,该变量被反复分配不同的值。这些值是a
、b
和{这里需要注意的是,}。也就是说,}的别名。这是一个不同的变量,刚好有相同的值。在
x
不引用a
,b
和{x
不是{你可以这样想:
有一个人叫
First Middle Last
。他的名字是First
,他的中间名是Middle
,他的第三个名字是Last
。这个人穿着一件红色的毛衣。在不管有人叫他}都指同一个人。在
First
还是Middle
,这都无关紧要,这两个名字都指同一个人。如果你说First now wears a blue sweater
,然后问What colour is Middle's sweater
,答案应该是blue
。这是因为First
和{然而,这并不是在迭代中发生的事情。在您的例子中,
x
不是到a
什么是First
。相反,发生的事情更接近于此。在你有三个人,}(},而{}的值是{}。在
John
,Jane
和{a
,b
,c
)。John
有一件blue
毛衣,Jane
有一件red
毛衣,Doe
有一件green
毛衣。这就是a
的值是1
,b
的值是{你一个接一个地问他们,他们的毛衣是什么颜色的。当你发现后,你会说,
James, a person different from John, Jane or Doe, now has the same colour sweater
。如果你随后改变了詹姆斯毛衣的颜色,这对约翰、简或多伊都没有影响。在这是一个解释为什么你的代码没有做你想要它做的事情。在
至于修复方法,一种可能的Python式方法是这样做的。在
更广泛地说,
map(transformation, array)
。在让我们看一下代码。如果您使用here,您将找到
map
的定义。在如您所见,
map
是一个内置函数,它接受第一个参数a函数。在我们的例子中,我们希望函数是乘以2。在为此,我们可以做}的函数,也可以显式地定义该函数。在
^{pr2}$lambda x: x*2
,它定义了一个接受x
并返回{不管选择什么,这个想法仍然有效,您将给一个
map
的第一个参数,该函数以您想要的方式转换输入。在本例中的输入依次是数组的每个元素。为了使这一点更加明确,让我们逐行执行示例。在
调用
map(multiply_by_two, [1, 2, 3])
将转换为[multiply_by_two(1), multiply_by_two(2), multiply_by_two(3)]
,而这又将变成[1 * 2, 2 * 2, 3 * 2]
。这将最终在[2, 4, 6]
中转换,map(multiply_by_two, [1, 2, 3])
调用的结果。在我希望这能帮助您更好地理解python。在
相关问题 更多 >
编程相关推荐