使用列表中的字符串作为Python

时间:2016-09-15 01:52:48

标签: python list

我有一个字符串元素列表,如user_contract = ['ZNZ6','TNZ6','ZBZ6']

我有一个数据集,它具有嵌套列表结构,如data = [[1,2,3],[4,5,6],[7,8,9]]

我想以相应的顺序为每个user_contract嵌套列表分配每个data字符串作为变量名称。

我知道我可以通过输入ZNZ6, TNZ6, ZBZ6 = data手动执行此操作。我认为这不够灵活,每次我更改user_contract中的名称时,我都必须手动更改此行。

有没有办法可以利用user_contract变量为每个元素分配数据?

3 个答案:

答案 0 :(得分:4)

此代码可以帮助您:

user_contract = ['ZNZ6','TNZ6','ZBZ6']
data = [[1,2,3],[4,5,6],[7,8,9]]
dictionary = dict(zip(user_contract, data))
print(dictionary)

它从两个列表创建一个字典并打印出来:

python3 pyprog.py 
{'ZBZ6': [7, 8, 9], 'ZNZ6': [1, 2, 3], 'TNZ6': [4, 5, 6]}

答案 1 :(得分:2)

您可以使用exec来计算表达式并动态分配给变量:

>>> names = ','.join(user_contract)
>>> exec('{:s} = {:s}'.format(names, str(data)))

答案 2 :(得分:0)

您可以使用词典理解来分配值:

myvars = {user_contract[i]: data[i] for i in range(len(user_contract))}

然后你可以访问像这样的值

myvars['TNZ6']
> [1, 2, 3]