Python-根据循环中的项名称更改循环外部的变量
我相信这很简单,我不认为我有语言来提出正确的查询。我想使用我在for循环中给出的列表项来更新for循环之外的变量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一个
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}