29 Stimmen

Wie doppelte Elemente in Array mit for-Schleife in Python zu finden?

Ich habe eine Liste mit doppelten Elementen:

 list_a=[1,2,3,5,6,7,5,2]

 tmp=[]

 for i in list_a:
     if tmp.__contains__(i):
         print i
     else:
         tmp.append(i)

Ich habe den obigen Code verwendet, um die doppelten Elemente in der list_a . Ich möchte die Elemente nicht aus der Liste entfernen.

Aber ich möchte hier eine for-Schleife verwenden. Normalerweise C/C++ wir verwenden wie diese ich denke:

 for (int i=0;i<=list_a.length;i++)
     for (int j=i+1;j<=list_a.length;j++)
         if (list_a[i]==list_a[j])
             print list_a[i]

wie kann man das in Python verwenden?

for i in list_a:
    for j in list_a[1:]:
    ....

Ich habe den obigen Code ausprobiert. Aber er liefert die falsche Lösung. Ich weiß nicht, wie ich den Wert für j .

0voto

Komu Punkte 12504

Nur schnell und schmutzig,

list_a=[1,2,3,5,6,7,5,2] 
holding_list=[]

for x in list_a:
    if x in holding_list:
        pass
    else:
        holding_list.append(x)

print holding_list

Ausgang [1, 2, 3, 5, 6, 7]

0voto

Fire Lancer Punkte 28368

Sie könnten ihn einfach Zeile für Zeile "übersetzen".

c++

for (int i=0;i<=list_a.length;i++)
    for (int j=i+1;j<=list_a.length;j++)
        if (list_a[i]==list_a[j])
            print list_a[i]

Python

for i in range(0, len(list_a)):
    for j in range(i + 1, len(list_a))
        if list_a[i] == list_a[j]:
            print list_a[i]

c++ for-Schleife:

for(int x = start; x < end; ++x)

Python-Äquivalent:

for x in range(start, end):

0voto

Prashant Lakhera Punkte 832

Im Falle von Python3 und wenn Sie zwei Listen

def removedup(List1,List2):
    List1_copy = List1[:]
        for i in List1_copy:
            if i in List2:
                List1.remove(i)

List1 = [4,5,6,7]
List2 = [6,7,8,9]
removedup(List1,List2)
print (List1)

0voto

Make42 Punkte 10830

Zugegeben, ich habe keine Tests gemacht, aber ich denke, es wird schwer sein, Pandas in Sachen Geschwindigkeit zu schlagen:

 pd.DataFrame(list_a, columns=["x"]).groupby('x').size().to_dict()

0voto

Prince Vijay Punkte 11

Sie können verwenden:

b=['E', 'P', 'P', 'E', 'O', 'E']
c={}
for i in b:
    value=0
    for j in b:
        if(i == j):
            value+=1
            c[i]=value
print(c)

Ausgabe:

{'E': 3, 'P': 2, 'O': 1}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X