2017-09-24 24 views
0

因此,我正在編寫一個關於列表和元組的代碼。但我不知道如何使代碼正確打印,如果單詞在列表中丟失。 (它不斷地打印出列表的全部長度,並且不包含字詞填充)當單詞不存在於列表和元組列表中時也正確地獲取輸出

就像列表中有3個單詞和3個描述一樣,當查找一個不在列表中的單詞時,輸出變成

「兩個字不存在」

「兩個字不存在」

「兩個字不存在」

而且這只是爲了打印出的文字一次。

def upkollning(lista): 
    print ', '.join(lista[0]) 
    ord_val = raw_input("What word do you wanna look up?: ") 
    for x in range(0, len(lista[0])): 
     if lista[0][x] == ord_val: 
      print lista[1][x],"\n"    
     else: 
      if ord_val not in lista[0]: 
       print "word does not exist" 

第二個問題我無法弄清楚如何在添加已經存在的單詞時出現「單詞已存在」。它只是跳過整個事情,只是不斷把現有的單詞放入元組列表中。

def tuplist(): 
tuplist = [("pancakes","something for breakfast")] 
return tuplist 
def instoppning2tup(tuplelista): 
    word = raw_input("Type the word: ") 
    #desc = raw_input("Type the description: ") 
    if word in tuplelista: 
     print "word already exists" 

    else: 
     desc = raw_input("Give descrption to the word: ") 
     tuplelista.append((word,desc)) 

    return tuplelista 

;第三相同的問題。第一個問題我得到的「Word不存在」爲每一個爲每一個'字'的元組列表中包含。

def upkollning2tup(tuplelista): 
    for x in range(0, len(tuplelista)): 
      print tuplelista[x][0],  
    ord_val = raw_input("\nWhat word do you wanna look up?: ") 
    for x in range(0, len(tuplelista)): 
     if tuplelista[x][0] == ord_val: 
      print tuplelista[x][1],"\n" 
     else: 
      print "Word doesn't exist" 

那麼,有沒有人在這裏感到慷慨的幫助?

+2

你應該問你的每一個三個問題分開,因爲每個使用不同的代碼。檢查[FAQ](http://stackoverflow.com/tour)和[如何提問](http://stackoverflow.com/help/how-to-ask)。 –

回答

0

首先,你需要一個查找表。因此,而不是一個元組列表,你應該使用一個字典。但是,爲了回答你的問題:

1)請參閱回答問題3

2) word從來沒有在tuplelista因爲字是一個字符串,從來沒有等同於在列表中的元組。而是使用if word in list(zip(*tuplelista))[0]

3),而做

def upkollning2tup(tuplelista): 
    #for x in range(0, len(tuplelista)): 
    # print tuplelista[x][0],  
    ord_val = raw_input("\nWhat word do you wanna look up?: ") 
    if ord_val in list(zip(*tuplelista))[0]: 
     print "Word doesn't exist" 
    else: 
     for elem in tuplelista: 
      if elem[0] == ord_val: 
       print elem[1]