我正在阅读包含课程的文件。我想用类作为键创建一个字典,所以我可以将它与另一个更具体的字典进行比较。我可以这样做作为一个列表,但通过列表中的每个项目并将其与字典进行比较似乎更难。字典只能用键构建吗?如果它不能如何只是添加一个随机值,因为我实际上不会使用它?
喜欢
{Math 2415 : random or blank,
CSE 3314 : random or blank}
感谢
答案 0 :(得分:3)
你应该使用一套:
s = set(['Math 2415', 'CSE 3314'])
测试值是否在集合中:
'Math 2415' in s
在集合中添加另一个元素:
s.add('CS 1')
有关其他设置操作,请参阅the python documentation。
答案 1 :(得分:2)
myDict = {'Math 2415' : None, 'CSE 3314' : None}
答案 2 :(得分:1)
您还可以考虑使用defaultdict
,其默认值对应于您的要求。这将是实现随机默认值的最佳方式。
例如:
from random import randint
from collections import defaultdict
# a random value initializer
def randomval():
return randint(1,100)
# your dictionary
mydict = defaultdict(randomval)
print mydict["Math 2415"] # initializes this key with
# a random integer and prints it
答案 3 :(得分:0)
您应该采用kalic的建议并使用一套
如果你真的需要一个带有基于列表的键的dict,并且值初始化为None
dict.fromkeys(['Math 2415', 'CSE 3314'])
{'Math 2415': None, 'CSE 3314': None}
答案 4 :(得分:0)
我不允许使用套装。我尝试了第一个人在使用“无”时所说的内容,但是\ n一直在出现。通常id只是剥离它,但没有没有属性条。怎么摆脱\ n。这是我写的。
def createcompleteddic (cdic) :
edic = {}
for classs in fp :
edic[classs]= [None.strip()]
return edic
### Main ###
fp = open("completed.txt","r")
a = createcompleteddic(fp)
print a
答案 5 :(得分:0)
浏览列表中的每个项目并将其与字典进行比较
这并不难。
d = {'a':1, 'b':2}
l = ['a', 'b']
print [i in d for i in l]
你会得到
[True, False]
根据您的代码
def createcompleteddic (cdic) :
edic = {}
for classs in fp :
edic[classs]= [None.strip()]
return edic
也许你想要这个?
edic[classs.rstrip()] = None