Ich versuche zu sehen, ob ein Wort oder ein Satz jeden Buchstaben des Alphabets enthält, und ich kann nicht alle Buchstaben drucken, die nicht im Satz / Wort enthalten sind.

alpha = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'
,'u','v','w','x','y','z']
x = raw_input('')
counter  = 0
counter2 = 0
for i in range(len(x))
    counter += 1
    for o in range(26):
        counter2 += 1
        if alpha[counter2] not in x[counter]:

Und ich stecke da fest ...

3
user1730295 9 Okt. 2012 im 04:55

4 Antworten

Beste Antwort

Using set difference:

import string
x=raw_input()
not_found=set(string.ascii_lowercase) - set("".join(x.split()))
print (list(not_found))

Ausgabe:

>>> 
the quick brown fox
['a', 'd', 'g', 'j', 'm', 'l', 'p', 's', 'v', 'y', 'z']
2
Ashwini Chaudhary 9 Okt. 2012 im 01:00
alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'
,'u','v','w','x','y','z'}
input_chars = set(raw_input())
print alphabet - input_chars

Alles, was wir tun, ist die Differenz zwischen dem Satz von Alphabetzeichen und dem Satz von Zeichen in unserer Eingabe festzulegen. Beachten Sie, dass die Differenzoperation als zweiter Operand jede iterierbare Operation annehmen kann, sodass wir unsere Eingabe nicht einmal wirklich in eine Menge umwandeln müssen, wenn wir dies nicht möchten, obwohl dies die Differenz ein wenig beschleunigt. Darüber hinaus gibt es eine eingebaute Zeichenfolge, die uns die ASCII-Buchstaben gibt, damit wir es so machen können:

import string
print set(string.ascii_lowercase) - raw_input()
4
jlund3 9 Okt. 2012 im 01:16

Da Sie bereits beide Zeichenfolgen durchlaufen, müssen Sie counter und counter2 nicht verwenden.

Du warst fast da. Python vereinfacht Listenoperationen, sodass Sie die Listen nicht Element für Element mithilfe von Indizes durchlaufen müssen:

alphabet = 'abcdefghijklmnopqrstuvwxyz'
sentence = raw_input('Enter a sentence: ').lower()  # Because 'a' != 'A'

letters = []

for letter in sentence:
    if letter in alphabet and letter not in letters:
        letters.append(letter)

print(letters)
2
Blender 9 Okt. 2012 im 01:08

Viel einfacher:

 import string
 x = raw_input()
 print [c for c in string.ascii_lowercase if c not in x]
1
defuz 9 Okt. 2012 im 00:58