根据数组元素创建变量名

Create variable names based on the elements of an array

我对 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']

我不希望变量名完全是 array 中元素的名称,但是,我希望变量名包含 array 中的元素,例如: 对于 string 元素 'apple' 我希望我的变量名是 'applePositive'。我试图实现这一点,它在下面(我不确定它是否是正确的格式)。

for word in filterKeywords:
    [word + "Positive"] = 0

我收到一个 "cannot assign to operator" 错误,我也尝试将其转换为 int,但它也不起作用。

如有任何帮助,我们将不胜感激!

您正在寻找 dict

vars = {}
for word in filterKeywords:
    vars[word + "Positive"] = 0

然后根据需要使用它,例如,print vars["applePositive"]

您可以使用 vars.keys()

访问所有 "names"

您也可以对所有项目进行进一步计算

for word, value in vars.iteritems():
    # do something
    print word, value

for i in vars:
    print i, vars[i]

如果在某些时候,你怀疑 "applePositive" 在你的字典中并且有一个值,你可以做 'applePositive' in vars,这将 return 或者 TrueFalse.

然后,如果您决定仅将 Facebook 和 Apple 的值加 1,您也可以这样做

for i in ['applePositive', 'facebookPositive']:
    if i in vars:
        vars[i] += 1  

您可以使用 dic 理解将每个值放入字典

filterKeywords = ['IBM', 'Microsoft', 'Facebook', 'Yahoo', 'Apple']
d = {k + "positive":0 for k in filterKeywords}

输出:

{'IBMpositive': 0, 'Yahoopositive': 0, 'Microsoftpositive': 0, 'Facebookpositive': 0, 'Applepositive': 0}