Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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-根据循环中的项名称更改循环外部的变量_Python - Fatal编程技术网

Python-根据循环中的项名称更改循环外部的变量

Python-根据循环中的项名称更改循环外部的变量,python,Python,我相信这很简单,我不认为我有语言来提出正确的查询。我想使用我在for循环中给出的列表项来更新for循环之外的变量 import random itemlist = ['cat', 'dog'] catcount = 0 dogcount = 0 for item in itemlist: ((item))count = random.randint(1,101) 使用itemcount不起作用,它只是给itemcount一个随机整数,而不是给catcount或dogcount一个

我相信这很简单,我不认为我有语言来提出正确的查询。我想使用我在for循环中给出的列表项来更新for循环之外的变量

import random

itemlist = ['cat', 'dog']

catcount = 0
dogcount = 0

for item in itemlist:
    ((item))count = random.randint(1,101)

使用
itemcount
不起作用,它只是给
itemcount
一个随机整数,而不是给
catcount
dogcount
一个随机整数。我想用随机整数更新
catcount
dogcount

动态变量几乎从来都不是一个好主意。改用字典:

import random

itemlist = ['cat', 'dog']

count = { 'cat': 0, 'dog': 0 }

for item in itemlist:
    count[item] = random.randint(1,101)
然后要访问
dogcount
只需执行
count['dog']
,对
catcount
也一样

我假设其目的是为
itemlist
中的每个项目都有一个新变量。在这种情况下,如果钥匙(
cat,dog
)不是预先确定的,您可以使用
defaultdict
defaultdict
继承了
dict
,因此它将像普通的
dict
一样工作:

from collections import defaultdict
import random

itemlist = ['cat', 'dog', 'foo', 'bar', 'baz']

count = defaultdict(int)

for item in itemlist:
    count[item] = random.randint(1,101)

print(count) # defaultdict(int, {'cat': 100, 'dog': 84, 'foo': 34, 'bar': 11, 'baz': 42})
更好的是,您可以使用一行字典:

count = {item: random.randint(1,101) for item in itemlist}