使用python将逗号分隔的值传递给Dict

时间:2019-10-15 18:56:57

标签: python python-2.7

我的列表如下:

lstA = (JOHN_FILE,RGL_MANAGER VICKY_FILE,SALES_MANAGER MAXR_FILE,MANAGER ASHLEY_FILE,TEAM_LEAD TERRESA_FILE,TEAM_MEMBER)

我需要将其转换为字典吗?我尝试了以下操作,但出现了错误。

d1 = dict(item.split(",") for item in lstA.split(" "))

Error: dictionary update sequence element #0 has length 7; 2 is required.

目标是,给定雇员姓名,我应该获取相应的职位名称作为值。请注意,我不能同时使用pandas和pyspark,因为我将需要在Lambda中使用它。

谢谢

3 个答案:

答案 0 :(得分:2)

我认为您正在搜索:

lstA = 'JOHN_FILE,RGL_MANAGER VICKY_FILE,SALES_MANAGER MAXR_FILE,MANAGER ASHLEY_FILE,TEAM_LEAD TERRESA_FILE,TEAM_MEMBER'
d1 = {}
for person in lstA.split():
    name, job = person.split(',')
    d1[name] = job

说明:

lstA您拥有的信息清单

lstA.split()按空格分隔字符串

person.split(','),分隔人员姓名及其工作

name, job = person.split(',')来解压值

答案 1 :(得分:1)

您可以只使用一个理解和dict函数:

lstA = 'JOHN_FILE,RGL_MANAGER VICKY_FILE,SALES_MANAGER MAXR_FILE,MANAGER ASHLEY_FILE,TEAM_LEAD TERRESA_FILE,TEAM_MEMBER'

print(dict(p.split(',') for p in lstA.split())

结果:

{'JOHN_FILE': 'RGL_MANAGER', 'VICKY_FILE': 'SALES_MANAGER', 'MAXR_FILE': 'MANAGER', 'ASHLEY_FILE': 'TEAM_LEAD', 'TERRESA_FILE': 'TEAM_MEMBER'}

答案 2 :(得分:0)

如果您输入的内容是字符串,则表达式有效:

>>> lstA = "JOHN_FILE,RGL_MANAGER VICKY_FILE,SALES_MANAGER MAXR_FILE,MANAGER ASHLEY_FILE,TEAM_LEAD TERRESA_FILE,TEAM_MEMBER"
>>> dict(item.split(",") for item in lstA.split(" "))
{'ASHLEY_FILE': 'TEAM_LEAD', 'JOHN_FILE': 'RGL_MANAGER', 'TERRESA_FILE': 'TEAM_MEMBER', 'MAXR_FILE': 'MANAGER', 'VICKY_FILE': 'SALES_MANAGER'}