Python自动完成用户输入

Python自动完成用户输入,python,string,printing,autocomplete,sentence,Python,String,Printing,Autocomplete,Sentence,我有一份球队名单。假设他们是 teamnames=["Blackpool","Blackburn","Arsenal"] 在程序中,我询问用户希望与哪个团队合作。我希望python自动完成用户的输入,如果它与团队匹配,并将其打印出来 因此,如果用户编写“Bla”并按enter键,那么团队Blackburn将自动打印在该空间中,并用于代码的其余部分。比如说, 您的选择:Bla(用户写入“Bla”并按enter键) 它应该是什么样子 您的选择:Blackburn(程序完成单词的其余部分)这取决于您

我有一份球队名单。假设他们是

teamnames=["Blackpool","Blackburn","Arsenal"]
在程序中,我询问用户希望与哪个团队合作。我希望python自动完成用户的输入,如果它与团队匹配,并将其打印出来

因此,如果用户编写“Bla”并按enter键,那么团队Blackburn将自动打印在该空间中,并用于代码的其余部分。比如说,

您的选择:Bla(用户写入“Bla”并按enter键)

它应该是什么样子


您的选择:Blackburn(程序完成单词的其余部分)

这取决于您的用例。如果您的程序是基于命令行的,则至少可以使用模块并按TAB键来完成。这个链接还提供了一些很好解释的例子,因为它的Doug Hellmanns PyMOTW。如果您正在通过GUI尝试,这取决于您使用的API。在这种情况下,您需要提供更多详细信息。

因此,您到目前为止都尝试了哪些内容,您也应该包括这些内容。让我们看看你迄今为止的努力。你的代码到底在哪里?为什么这个问题离题了?它似乎清楚地询问了如何在python中实现“enter”完成(如制表符完成),给出了一个可能的输入列表。
teamnames=["Blackpool","Blackburn","Arsenal"]

user_input = raw_input("Your choice: ")

# You have to handle the case where 2 or more teams starts with the same string.
# For example the user input is 'B'. So you have to select between "Blackpool" and
# "Blackburn"
filtered_teams = filter(lambda x: x.startswith(user_input), teamnames)

if len(filtered_teams) > 1:
    # Deal with more that one team.
    print('There are more than one team starting with "{0}"'.format(user_input))
    print('Select the team from choices: ')
    for index, name in enumerate(filtered_teams):
        print("{0}: {1}".format(index, name))

    index = input("Enter choice number: ")
    # You might want to handle IndexError exception here.
    print('Selected team: {0}'.format(filtered_teams[index]))

else:
    # Only one team found, so print that team.
    print filtered_teams[0]