我确信这很简单,我认为我没有提出正确查询的语言。我想使用我在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
用随机整数更新。
答案 0 :(得分:3)
动态变量几乎从来不是一个好主意。请改用字典:
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
中的每个项目使用一个新变量。如果没有预先确定键(defaultdict
),则可以使用cat, dog
。 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}