Python列表:在列表中查找单词;从另一个列表中打印相应的值

时间:2018-06-14 07:27:17

标签: python dictionary

我有两个清单。用户写入一个单词,如果它存在于第一个列表中,则使用来自第二个列表的对应值。例如,它是第三个单词,在定义列表中它也是第三个单词。所以它应该打印定义列表中的第三件事。我无法在互联网上找到帮助。 我知道它与长度有关,但我不知道如何将用户对该列表的回答链接起来,然后打印相应的定义。

wordlist = ['zebra', 'piano', 'fly']
deflist = ['is an animal','is a musical instrument','is an insect']
lenwordlist = len(wordlist)
lendeflist = len(deflist)

word = wordlist(lenwordlist)
defl = deflist(lendeflist)

request = input("Write a word: ")
if request in wordlist:
    print defl
endif

请帮忙

6 个答案:

答案 0 :(得分:2)

如果要关联事物,请使用词典。

words = dict(
    zebra = 'is an animal',
    piano = 'is a musical instrument',
    fly   = 'is an insect'
)

words['zebra']
# = 'is an animal'

答案 1 :(得分:1)

  1. 如果是Python,则为endif。缩进处理它
  2. def = ...SyntaxError: invalid syntax
  3. len不需要。
  4. 您需要一个单词列表及其定义。这可以通过一对配对或一个字典来完成,这在我看来是更好的解决方案:

    wordlist = ['zebra', 'piano', 'fly']
    deflist = ['is an animal','is a musical instrument','is an insect']
    
    d = dict((item, definition) for item,definition in zip(wordlist,deflist))
    # If you have Python 2.7 + or Python3 you may use this syntax:
    # d = {item: definition for (item, definition) in zip(wordlist,deflist)}
    

    从这里你可以要求输入:

    request = input("Write a word: ")
    

    并检查你的字典:

    if request in d:
        print (d[request])
    

    总而言之:

    wordlist = ['zebra', 'piano', 'fly']
    deflist = ['is an animal','is a musical instrument','is an insect']
    
    d = dict((item, definition) for item,definition in zip(wordlist,deflist))
    
    request = input("Write a word: ")
    if request in d:
        print (d[request])
    

答案 2 :(得分:0)

列表有一个索引方法,如下所示:

wordlist = ['zebra', 'piano', 'fly']
deflist = ['is an animal','is a musical instrument','is an insect']
request = input("Word: ")
if request in wordlist:
    print(deflist[wordlist.index(request)])

然而,由于它在列表上重复两次

,因此效率很低

答案 3 :(得分:0)

字典将键(单词)链接到值(定义)。语法如下:(不是唯一的)

words = {"zebra": "is an animal", "piano": "is a musical instrument", "fly": "is an insect"}

要获得定义,只需将密钥放在[]

words["zebra"] # will return "is an animal".

现在使用列表,您不应该查看项目的长度,而应该查看列表中项目的索引。

wordlist = ['zebra', 'piano', 'fly']
deflist = ['is an animal','is a musical instrument','is an insect']

列表索引从0len(list)-1。方法index()返回列表中项目的索引。

要获得"fly"的定义,您可以这样做:

deflist[wordlist.index("fly")]

[]中的元素是索引,此处wordlist.index("fly")返回2。因此deflist[2]将返回正确的定义。

答案 4 :(得分:0)

试试这个;

wordlist = ['zebra', 'piano', 'fly']
deflist = ['is an animal','is a musical instrument','is an insect']
def some_func(word, sentence):
  if word in wordlist:
    sentence = sentence[wordlist.index(word)]
    return word+' '+sentence
  return "Word does not have a sentence in function"
word = input("Write a word: ")
print(some_func(word, deflist))

答案 5 :(得分:-3)

据我了解你是对的 - 你想要的,

如果给定的单词在wordlist中    给我它的索引
   如果deflist上存在给定的索引:
      在deflist中打印在特定索引处找到的单词

但这将是非常低效的 - 更好地使用词典