我第一次在这里提问。我有一个名称的文本文件,每行一个名称,我正在阅读列表,然后重复该列表两次,第一次删除\ n's,第二次将列表小写。然后我向用户索要一个搜索词,并将它们的输入转换为小写,然后搜索列表的小写版本,然后我得到匹配的索引,并使用它显示该小写的非小写版本将项目列表返回给用户(以便他们可以键入例如anivia并返回Anivia)。这工作正常,但我确定我的代码非常糟糕。我想要做的是为列表文件中的某些名称添加特定的缩写,并接受这些缩写作为输入,但仍显示全名。例如,用户输入“mumu”并且它看到该列表具有Amumu-mumu,以引用Amumu。我怎么能接受这个减少?另外还有其他一些例子,如财富小姐或Kha'Zix的kha。我想也许有第二个文件包含缩写列表,但这似乎很浪费,我相信这是一个更好的方法。这里是我的不好的代码至今:需要将字符串匹配到Python中的文件中
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和编程一般都很陌生。感谢您提供任何帮助,对于这么长的帖子感到抱歉。
你不应该调用一个变量'list';它是一个python builtin的名字。 –
你提到一个辅助文本文件。它是什么时候创建的?它是什么? – martineau
@martineau我自己做的,他们看起来像这样:[链接] http://www.pasteall.org/37416 – Kassandra