Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改列表元素';python中for循环中的s值?_Python_List_Elements - Fatal编程技术网

如何更改列表元素';python中for循环中的s值?

如何更改列表元素';python中for循环中的s值?,python,list,elements,Python,List,Elements,在使用for循环时,我在更改列表元素的值时遇到了一些问题。下面的代码输出10和5,但我预期是10和10 amount = 5 costFieldList = [amount] for index, field in enumerate(costFieldList): if type(field) is int: costFieldList[index] = field*2 print(costFieldList[index]) print(amount)

在使用for循环时,我在更改列表元素的值时遇到了一些问题。下面的代码输出10和5,但我预期是10和10

amount = 5
costFieldList = [amount]

for index, field in enumerate(costFieldList):
    if type(field) is int:
        costFieldList[index] = field*2
        print(costFieldList[index])
print(amount)

这是一个范围问题吗?提前感谢。

您正在最后打印金额。该值设置为不可变值(5)


如果最后一行是
print(costFieldList)
,您将看到它是
[10]
。您使用了“金额”来初始化列表,但没有返回修改金额的链接。

您正在打印末尾的“金额”。该值设置为不可变值(5)


如果最后一行是
print(costFieldList)
,您将看到它是
[10]
。您使用了“金额”来初始化列表,但没有返回修改金额的链接。

您正在打印末尾的“金额”。该值设置为不可变值(5)


如果最后一行是
print(costFieldList)
,您将看到它是
[10]
。您使用了“金额”来初始化列表,但没有返回修改金额的链接。

您正在打印末尾的“金额”。该值设置为不可变值(5)


如果最后一行是
print(costFieldList)
,您将看到它是
[10]
。您使用了amount来初始化列表,但没有返回修改amount的链接。

通过写入
costFieldList[index]=field*2
,您将创建一个全新的int实例,然后该实例将覆盖对数组中实例的“引用”,而不是值本身。因此,您失去了对
金额的原始值的引用


在这个阶段,
amount
仍然有一个对
5
的“引用”,这就是为什么第二个输出是5。

通过编写
costFieldList[index]=field*2
,您创建了一个全新的int实例,然后它会覆盖数组中实例的“引用”,而不是值本身。因此,您失去了对
金额的原始值的引用


在这个阶段,
amount
仍然有一个对
5
的“引用”,这就是为什么第二个输出是5。

通过编写
costFieldList[index]=field*2
,您创建了一个全新的int实例,然后它会覆盖数组中实例的“引用”,而不是值本身。因此,您失去了对
金额的原始值的引用


在这个阶段,
amount
仍然有一个对
5
的“引用”,这就是为什么第二个输出是5。

通过编写
costFieldList[index]=field*2
,您创建了一个全新的int实例,然后它会覆盖数组中实例的“引用”,而不是值本身。因此,您失去了对
金额的原始值的引用


在此阶段,
amount
仍然有一个对
5
的“引用”,这就是为什么第二个输出是5。

如果您想将
amount
成本字段列表[索引]
设置为
字段*2
使用:

amount = 5
costFieldList = [amount]

for index, field in enumerate(costFieldList):
    if isinstance(field,int):  # use issinstance to check if field is an integer
        costFieldList[index] = field * 2
        print(costFieldList)
        amount=costFieldList[index] # set amount to value of costFieldList index 
print(amount,costFieldList ) 
(10, [10])

如果要将
金额
成本字段列表[索引]
设置为
字段*2
使用:

amount = 5
costFieldList = [amount]

for index, field in enumerate(costFieldList):
    if isinstance(field,int):  # use issinstance to check if field is an integer
        costFieldList[index] = field * 2
        print(costFieldList)
        amount=costFieldList[index] # set amount to value of costFieldList index 
print(amount,costFieldList ) 
(10, [10])

如果要将
金额
成本字段列表[索引]
设置为
字段*2
使用:

amount = 5
costFieldList = [amount]

for index, field in enumerate(costFieldList):
    if isinstance(field,int):  # use issinstance to check if field is an integer
        costFieldList[index] = field * 2
        print(costFieldList)
        amount=costFieldList[index] # set amount to value of costFieldList index 
print(amount,costFieldList ) 
(10, [10])

如果要将
金额
成本字段列表[索引]
设置为
字段*2
使用:

amount = 5
costFieldList = [amount]

for index, field in enumerate(costFieldList):
    if isinstance(field,int):  # use issinstance to check if field is an integer
        costFieldList[index] = field * 2
        print(costFieldList)
        amount=costFieldList[index] # set amount to value of costFieldList index 
print(amount,costFieldList ) 
(10, [10])

您正在打印列表元素,而不是列表本身。您已经替换了元素,但旧元素仍在范围内,这就是您正在打印的内容。请尝试打印(costFieldList)
。这是一个范围问题吗。您打印的金额仍然是5。您更改列表中的值5,但这不是您在末尾打印的值基本上,我希望数量现在是其原始值的两倍,以便打印(数量)输出10。我该怎么做呢?不要使用
type(field)is int
use
isinstance(field,int)
也更新循环中的金额是没有意义的。如果只有一个值,则不需要循环。可以在创建列表之前更改该值。或者,如果列表中有多个值,则应该知道如何更新金额。大多数人看不懂头脑。你打印的是列表元素,而不是列表本身。您已经替换了元素,但旧元素仍在范围内,这就是您正在打印的内容。请尝试打印(costFieldList)
。这是一个范围问题吗。您打印的金额仍然是5。您更改列表中的值5,但这不是您在末尾打印的值基本上,我希望数量现在是其原始值的两倍,以便打印(数量)输出10。我该怎么做呢?不要使用
type(field)is int
use
isinstance(field,int)
也更新循环中的金额是没有意义的。如果只有一个值,则不需要循环。可以在创建列表之前更改该值。或者,如果列表中有多个值,则应该知道如何更新金额。大多数人看不懂头脑。你打印的是列表元素,而不是列表本身。您已经替换了元素,但旧元素仍在范围内,这就是您正在打印的内容。请尝试打印(costFieldList)
。这是一个范围问题吗。您打印的金额仍然是5。您更改列表中的值5,但这不是您在末尾打印的值基本上,我希望数量现在是其原始值的两倍,以便打印(数量)输出10。我该怎么做呢?不要使用
type(field)is int
use
isinstance(field,int)
也更新循环中的金额是没有意义的。如果只有一个值,则不需要循环。您可以在创建t之前更改该值