我第一次在这里问东西。我有一个名称文本文件,每行一个名称,我正在读入一个列表,然后将该列表复制两次,第一次删除\n,第二次将列表小写。然后我向用户询问一个搜索词,并将他们的输入转换为小写,然后搜索列表的小写版本,然后我得到匹配的索引,并使用它来显示那个的非小写版本将项目返回给用户(以便他们可以键入例如 anivia 并取回 Anivia)。这工作正常,但我确定我的代码很糟糕。我想做的是为列表文件中的某些名称添加特定的缩写,并接受这些缩写作为输入,但仍显示回全名。例如,用户输入“mumu” 它看到列表中有 Amumu - mumu,以引用 Amumu。我怎么能接受这个缩写?还有其他情况,例如幸运小姐的 mf 或卡兹克的 kha。我想也许有第二个文件包含缩写列表,但这似乎很浪费,我相信有更好的方法。到目前为止,这是我的错误代码:
f = open("champions.txt") #open the file
list = f.readlines() #load each line into the list
#print list
list2 = [item.rstrip('\n') for item in list] #remove trailing newlines in copy list
list3 = [item.lower() for item in list2] #make it all lowercase
print "-------\n", list2 #print the list with no newlines just to check
print "which champ" #ask user for input
value = raw_input().lower() #get the input and make it lowercase
if value in list3: #check list for value and then print back a message using that index but from the non-lowercase list
pos = list3.index(value)
print "list contains", list2[pos]
else: #if the input doesn't match an item print an error message
print "error"
一旦它按我需要的方式工作,我就把它全部放入我的主文件中的某个函数中。基本上我想更改我的文本文件中的一些行以具有有效的替代缩写,并且能够接受其中的那些,并且仍然将全名显示给用户。例如,我的辅助文本文件中具有缩写的行中有一行:
Kog'Maw - kogmaw, kog, km
我怎样才能简化我所拥有的并添加该功能?我不确定从哪里开始,我对 python 和一般编程很陌生。感谢您提供的任何帮助,对于这么长的帖子感到抱歉。