[英]How to iterate a key and value into a dictionary based off what is already in the dictionary
[英]return value if key already in dictionary
我目前正在为 Compsci 课程做最后的作业。 基本思想是创建一个简单的加密程序。 它使用包含映射到不同字母的字母表行的文件输入(即 z 到 a、y 到 b、w 到 c 等)并创建两个字典(编码和解码)以供稍后使用并返回 0。 function还需要测试可能出现的不同问题并返回不同的值。 我坚持的部分是如果键或值已经添加到字典中,分别返回 3 或 4。
encoding = {}
decoding = {}
def createDictionaries(filepath):
global encoding
global decoding
try:
with open(filepath) as f:
for line in f:
try:
(key, val) = line.split()
except ValueError:
return 2
encoding[(key)] = val
decoding[(val)] = key
return 0
except FileNotFoundError:
return 1
print(createDictionaries("dict1.txt"))
我一直在尝试使用 for 循环和异常捕获,但似乎无法破解它
非常感谢任何帮助。
要检查一个键或一个值是否在字典中,您可以使用if key in dic.keys():
if value in dic.values():
您可以在将键和值添加到字典之前添加 if 语句:
encoding = {}
decoding = {}
def createDictionaries(filepath):
global encoding, decoding
try:
with open(filepath,'r') as f:
for line in f.readlines():
try:
(key, val) = line.split()
except ValueError:
return 2
if key in encoding.keys(): # If this condition is met, return 3
return 3
if val in encoding.values(): # If this condition is met, return 4
return 4
encoding[key] = val
decoding[val] = key
return 0
except FileNotFoundError:
return 1
print(createDictionaries("dict1.txt"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.