我的列表如下:
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中使用它。
谢谢
答案 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'}