我正在尝试创建一个python程序,它接受用户输入文本或文件,并将每个字符更改为值,然后返回结果。 我有一个用户字符串被读入列表。 我试图让一个for循环遍历该列表,并根据字典键检查每个字符,然后返回字典中的值。我该怎么做呢? 感谢
到目前为止代码:
for i in range (0, len(text)):
for j in alphabet.keys():
if text[i].upper() == alphabet.values():
j+=1
print(alphabet.items())
i+=1
答案 0 :(得分:0)
for item in list_:
try:
print(d[item])
except KeyError as e:
print("{} not in d".format(e.args[0]))
如果没有看到您的代码,我就无法提供更相关的内容
答案 1 :(得分:0)
您可能想要使用string.maketrans
和string.translate
>>> import string
>>> table = string.maketrans('abc', 'xyz')
>>> string.translate('the cat is bad', table)
'the zxt is yxd'
答案 2 :(得分:0)
下面的大多数代码只是创建一个字典,它将输入的字母翻译成字典中的随机对应值(即每个字母映射到另一个随机字母)。关于代码的要点:
1)range()
自动默认从0
开始,因此range(0, n)
最好只写为range(n)
2)您根本不需要使用range()
。 for letter in string
将采用输入字符串并逐字逐句查看。 for elephant in string
也会这样做,每个字母依次被分配到名称elephant
,因此我选择使用letter
的事实只是为了便于阅读。
3)使用keys()
,values()
和items()
不是查询字典的方法。你有两种标准方法;我可以使用translation_dict[letter]
如果KeyError
的值不是字典中的键,则会抛出letter
,如果密钥,translation_dict.get(letter)
会返回None
不存在。在下面的示例中,我使用get()
但还添加了另一个参数(“不在dict中”),如果找不到该字母作为键,则将None
替换为默认值。
import string # For setup of example data
import random # For setup of example data
# Just creating the translation dictionary and fake user input
alphabet = list(string.uppercase)
translated = random.sample(alphabet, len(alphabet))
translation_dict = {i: j for i, j in zip(alphabet, translated)}
user_input = 'Hello'
# The loop you're trying
for letter in user_input:
corresponding_value = translation_dict.get(letter.upper(), 'Not in dict')
print(corresponding_value)