我有一堆文件,我正在创建字典,在一些文件中,我创建的键和值是相同的。我需要跟踪相同的字典,以便其他人可以使用正确的值更新它们。我想将这些词典的值设置为none。我已经删除了所有空格和奇怪的字符,因此键和值完全相同。我基本上想说,“如果键和值相同,那么设置值=无”......
x = file I'm creating dictionary from
if x[1] = x[4]:
d[x[1]] = None
但无论什么时候这样做,我都会收到一条错误消息:
SyntaxError: invalid syntax
有什么建议吗?
答案 0 :(得分:2)
由于我无法正确理解描述,我将回答标题:
for k, v in d.items():
if k == v:
d[k] = None
答案 1 :(得分:1)
在Python(以及我所知的所有其他语言)中,为了比较if
中的值,使用了双等于==
。我建议你阅读:Python IF...ELIF...ELSE Statements。以下是示例代码,将值设置为None
,其中key
和值相同:
my_dict = {'a': '1', 'b': 'b', 'c': '2', 'd': 'd'} # 'b' and 'c' have same
# 'key' and 'value'
for key, value in my_dict.items():
if key == value:
my_dict[key] = None
# Updated value of 'my_dict':
# {'a': '1', 'c': '2', 'b': None, 'd': None}
答案 2 :(得分:1)
您可以使用词典理解:
>>> d = { 'a': 1, 'b': 2, 'c': 'c' }
>>> { a: None if a == b else b for a,b in d.items() }
{'a': 1, 'c': None, 'b': 2}
这显然会创建整个字典的副本,因此上述答案可能更适合您的用例。