2016-04-23 8 views
2

Das klingt sehr seltsam, lassen Sie mich erklären. Ich würde gerne wissen, wie ich die Positionen eines Wortes finden kann, wenn es von zwei verschiedenen Listen in Python geteilt wird. Zum Beispiel:Wie kann ich die Position eines Elements in einem Satz im Vergleich zu einem Element finden?

a =[i,am,using,the,internet] 
b =[are,you,using,a,desktop] 

Es sollte mich in der Lage sein zu sagen, die Positionen 2 (aus der ersten Liste, es passiert einfach, das ist die Position der es in beide, wenn sie). Ich kann sehen, ob irgendwelche Worte geteilt werden, aber ich weiß nicht, wie die Position zu finden:

if any(x in a for x in b): 

Doch kann ich diese Zeile nicht bekommen mich davon die Position zu erzählen. Ich weiß, das ist unglaublich einfach, mein Freund bringt mir bei, wie man programmiert.

+0

'intersection = [x für x in a if x in b]' dann können Sie mit 'List.index()' iterieren, um den Index der Zeichenfolgen in Ihrer Kreuzungsliste abzurufen. – MeetTitan

+0

@MeetTitan Vielen Dank –

+0

Sie sind herzlich willkommen; und willkommen bei Stack Overflow! Genieße deinen Aufenthalt. – MeetTitan

Antwort

0

Sie können die Kreuzungen mit Sets erhalten:

intersections = set(a) & set(b) 

dann die Positionen list.index(element) mit finden:

for intersection in intersections: 
    index_a = a.index(intersection) 
    index_b = b.index(intersection) 
    # Do something with the indices 

Aus dem Referenz:

list.index(x) Rückkehr des Index in die Liste des ersten Elements, dessen Wert x ist. Es ist ein> Fehler, wenn es keinen solchen Gegenstand gibt.

+0

Glauben Sie, es wäre möglich, das Wort "using" in der Liste b durch die Position in der Liste a zu ersetzen, indem Sie eine Art Schleife verwenden, um das zu erreichen? –

+0

Sie könnten 'b [index_b] = index_b' zum Beispiel tun, könnten Sie klären? – tobspr

+0

@James_Progert, versuchen Sie 'index = b.index (" using ")' dann 'b [index] = index' – MeetTitan

Verwandte Themen