gpt4 book ai didi

python - 读取文件并与字典进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:45 25 4
gpt4 key购买 nike

我遇到了一个问题,希望得到任何提示/建议。到目前为止,这是我的代码:

name = input("Enter text file name\n")
radio = {'a':'alfa', 'b':'bravo', 'c':'charlie', 'd':'delta','e':'echo', 'f':'foxtrot', 'g':'golf', 'h':'hotel','i':'india', 'j':'juliett', 'k':'kilo', 'l':'lima','m':'mike', 'n':'november', 'o':'oscar', 'p':'papa','q':'quebec', 'r':'romeo', 's':'sierra', 't':'tango','u':'uniform', 'v':'victor', 'w':'whiskey', 'x':'x-ray','y':'yankee', 'z':'zulu'}
def main():

try:
f = open(name, "r")
for line in f.read().split():
//print(line)
if line in radio:
print(radio[line])
else:
print("Not an radio/nato alphabet")

f.close()
except IOError:
print("file", nimi, "does not exist.")
main()

目前我的 if line in radio: 找不到单个字母表。我想知道是不是因为“line”是 str 格式而 radio 是 dict

澄清情况。这是文本文件和想要的输出。

文本文件:

A O U
G 1 Y
C A !

想要的输出:

alfa
oscar
uniform

golf
Not an radio/nato alphabet
yankee

charlie
alfa
Not an radio/nato alphabet

这是学校作业,检查软件不是最好的。想要的输出有那些额外的空格,但是当我使用 split() 命令进行 for-loop 时,它不会添加这些新行。

最佳答案

看起来原因是因为文本文件中的字母都是大写的,但在你的字典中设置为全部小写。解决此问题的一种简单方法是先将文件内容转换为小写:

for letter in f.read().lower().split():
if letter in radio:
print(radio[letter])
else:
print("Not an radio/nato alphabet")

为了在每行文本之间添加换行符,您可以这样做:

for line in f:
for letter in line.lower().split():
if letter in radio:
print(radio[letter])
else:
print("Not an radio/nato alphabet")

print('')

现在,您首先要遍历每一行。对于每一行,您都试图将字母翻译成北约代码,然后添加一个空行将其与下一行分开。

关于python - 读取文件并与字典进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25351368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com