如何输入字符串或句子并从字典中输出相应的值

2024-06-11 22:36:23 发布

您现在位置:Python中文网/ 问答频道 /正文

当我打印(d)时,我能够打印关键字:值组合。现在我的目标是,当我在即时消息中输入一条消息时,例如,你迟到了。它会打印出来你为什么迟到。其目的是将句子拆分为单词,并用相关的文本值(如果可用)替换它,否则保留原始单词

这是一个学校作业,我只是想在这方面寻求一些帮助

这是我字典的一部分:

{'r': 'are\n', 'y': 'why\n', 'u': 'you\n', 'ttyl': 'talk to you later\n', 'l8': 'late\n', 'brb': 'be right back\n', 'lol': 'laughing out loud\n', 'bbl': 'be back later\n', 'tldr': "too long; didn't read\n", 'rofl': 'rolling on floor laughing\n', 'gtg': 'got to go\n'}
d = {}
with open("abbreviations.txt") as abb:
    for line in abb:
        (key, val) = line.split(":")
        d[key] = val

print(d)

im = input("Enter message here: ")

Tags: tokey目的you消息目标lineback
2条回答

这就是你要找的吗

d = {}
with open("abbreviations.txt") as abb:
    for line in abb:
        (key, val) = line.split(":")
        d[key] = val

print(d)

im = input("Enter message here: ")
message = ' '.join([d[s] if s in d else s for s in im.split()])

当然有更简洁的方法可以做到这一点,但这应该有助于您在编码时理解和探索更多内容

您应该知道的是,您可以使用字典中的dict.get(<key>)方法来检索值。如果不存在,它将返回None

d = {}
with open("abbreviations.txt") as abb:
    for line in abb:
        (key, val) = line.split(":")
        d[key] = val

print(d)

im = input("Enter message here: ")

final_prhase = ""

for abb in im.split():
    temp = d.get(abb) or abb
    final_prhase += "{} ".format(temp)

print("Your are saying: {}".format(final_prhase))

相关问题 更多 >