根据数组python的元素创建变量名

时间:2015-04-06 16:41:30

标签: python arrays casting

嗨,我在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#编码)。

非常感谢任何帮助。

2 个答案:

答案 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,它将返回TrueFalse

然后,如果你决定只将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}