猿问

【python】 字典添加value值问题

这是我文件的内容,我想达到的目的是一个字典,key是账号,value值是一个集合,集合里边的内容就是账号对应的课程.即我需要的内容: {1514077706:{Java开发,Python开发},1966370841:{Python开发}}

 

我写的代码如下:

less = {}
lsn = set()
file_stu = open('student_lesson', 'r', encoding='utf-8')for line in file_stu:
    name,course = line.strip().split(':')
    lsn.add(course)
    less[name] = lsn

这样的显示结果: {1514077706:{Java开发,Python开发},1966370841:{Java开发,Python开发}}

 

尝试写的一种代码


less = {}
lsn = set()
file_stu = open('student_lesson', 'r', encoding='utf-8')for line in file_stu:
    name,course = line.strip().split(':')
    less[name] = lsn.add(course)


但是这样写的话,每个key对应的value值都是None,达不到我预期的效果

请问各位大佬怎么实现我需要的那种字典


SMILET
浏览 867回答 1
1回答

一只斗牛犬

首先{1514077706:{Java开发,Python开发},1966370841:{Python开发}} 有问题因该是{1514077706:["Java开发",",Python开发"],1966370841:["Python开发"]},你写的是字典套字点还没有value值;{}是字段,[]是列表(数组)下面给你一个数据合并方法你看懂这个就都明白了    def adata(self, list):        if len(list) == 0:             print "The list length is empty !!!"             return         data = {}        for i, v in enumerate(list):             uid = v["userid"]            if data.has_key(uid):                 data[uid].append(list[i])            else:                 lists = []                 lists.append(list[i])                 data[uid] = lists        return data
随时随地看视频慕课网APP

相关分类

Python
我要回答