嗨,我在python中编码相对较新,所以对我来说很容易
我想根据字符串数组的元素创建具有这些变量名称的整数变量,并将它们全部设置为零以开始(为了节省我手动编码20个变量)。字符串数组如下所示。
filterKeywords = ['IBM', 'Microsoft', 'Facebook', 'Yahoo', 'Apple', 'Google', 'Amazon', 'EBay', 'Diageo',
'General Motors', 'General Electric', 'Telefonica', 'Rolls Royce', 'Walmart', 'HSBC', 'BP',
'Investec', 'WWE', 'Time Warner', 'Santander Group']
我不希望变量名完全是数组中元素的名称,但是我希望变量名包含数组中的元素,例如字符串元素'apple'我希望我的变量名称为是'applePositive'。我试图实现这一点,它在下面(我甚至不确定它是否是正确的格式)
for word in filterKeywords:
[word + "Positive"] = 0
我得到一个无法用这个分配给操作符错误,我也尝试将它转换为int但它似乎也不喜欢它(可能做错了,因为我习惯于用c#编码)。
非常感谢任何帮助。
答案 0 :(得分:3)
您正在寻找dict。
vars = {}
for word in filterKeywords:
vars[word + "Positive"] = 0
然后根据需要使用它,例如,print vars["applePositive"]
。
您可以访问所有"名称"与vars.keys()
您也可以对所有项目进行进一步的计算
for word, value in vars.iteritems():
# do something
print word, value
或
for i in vars:
print i, vars[i]
如果在某些时候,如果" applePositive"在你的词典中有一个值,你可以'applePositive' in vars
,它将返回True
或False
。
然后,如果你决定只将Facebook和Apple的值加1,你也可以这样做
for i in ['applePositive', 'facebookPositive']:
if i in vars:
vars[i] += 1
答案 1 :(得分:1)
您可以使用词典理解将每个值放入词典
filterKeywords = ['IBM', 'Microsoft', 'Facebook', 'Yahoo', 'Apple']
d = {k + "positive":0 for k in filterKeywords}
哪个输出:
{'IBMpositive': 0, 'Yahoopositive': 0, 'Microsoftpositive': 0, 'Facebookpositive': 0, 'Applepositive': 0}