Lista de tuplas de Python (Buscar valor con clave + verificar si existe)

Tengo una lista de tuplas que es:

TupleList = [("computer", "weird working machine"),("phone","talkerino"),("floor", "walk on")] 

Y lo que quiero hacer es imprimir el valor si tengo la clave

Me gusta:

 x = raw_input("Word to lookup: ") # I insert "computer" 

y debe imprimir “máquina de trabajo extraña”

TD LR: Obtener el valor con la clave

Otra cosa que necesito arreglar es que si bash agregar la tupla con una nueva palabra que YA existe en la tupla, debería imprimir “Ya existe”, de lo contrario debería agregarse con la nueva palabra. Algo como esto:

 if(word in tuple exist) print "Already exist" else TupleOrd.append(((raw_input("\n Word to insert: ").lower()),(raw_input("\n Description of word: ").lower()))) 

Las tuplas no son el mejor tipo de datos para la búsqueda de valor-clave. Considere usar un diccionario en su lugar:

 >>> TupleList = [("computer", "weird working machine"),("phone","talkerino"),("floor", "walk on")] >>> d = dict(TupleList) >>> d["computer"] 'weird working machine' 

También facilita la comprobación de la presencia de palabras existentes:

 key = raw_input("Word to insert:").lower() if key in d: print "Sorry, that word is already present" else: d[key] = raw_input("Description of word:").lower() 

Si es absolutamente necesario usar una tupla, puede buscar claves con un bucle:

 for key, value in TupleList: if key == "computer": print value 

y de forma similar determinar qué claves ya existen:

 key_exists = False for key, value in TupleList: if key == "computer": key_exists = True if key_exists: print "Sorry, that word is already present" else: #todo: add key-value pair to tuple 

Una forma loca de hacer esto sería:

 TupleList = [("computer", "weird working machine"),("phone","talkerino"),("floor", "walk on")] x = raw_input("Word to lookup: ") key_exists = next(iter([i[1] for i in TupleList if i[0] == x]), None)) is not None if key_exists: print 'key exists'