python array hk. ben kafayı yemeden yardım lütfen

Başlatan zamzam23, 19 Temmuz 2021, 00:55:57

zamzam23

19 Temmuz 2021, 00:55:57 Son düzenlenme: 19 Temmuz 2021, 01:52:02 zamzam23
Selamlar,
Python'da yeni sayılırım.

liste=[[a,b,c,d],
       [
e,f,g,h],
       [
k,l,m,d],
       [
x,y,j,d],
       [
p,r,s,z]]

şekilde bir array düşünün. Arrayin 0,2 ve 3. elemanının 3. indisleri aynı olsun. (d isimli indis)
Ben bu arrayde, 3. indisleri aynı olanları teke düşürmek istiyorum.

Yani istediğim yeni array:

liste2=[[a,b,c,d],
       [
e,f,g,h],
       [
p,r,s,z]]


Yardımcı olur musunuz?


 

muhendisbey

19 Temmuz 2021, 02:11:38 #1 Son düzenlenme: 19 Temmuz 2021, 02:12:50 muhendisbey
Ben de çok iyi biliyorum diyemem, basitten gidelim. Üçüncü indisleri aynı olan array adreslerini nasıl buluruz?
1. ye baktık "d" aramak için işaretledik
2. ye baktık "h"
3. ye baktık "d" bunu kaydettik
4. ye baktık "d" bunu kaydettik
5. ye baktık "z"
arama kayıdı olduğu için 1'i tuttuk diğer adresini kaydettiklerimizi diziden attık. Döngüyü 2.'den itibaren tekrar başlattık

2. ye baktık "h" aramak için kaydettik
3. ye baktık "z"
tekrar yok dizi aynı

n-1 kere tekrar ettiğimiz için "z" ye bakmadık.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

zamzam23

Alıntı yapılan: muhendisbey - 19 Temmuz 2021, 02:11:38Ben de çok iyi biliyorum diyemem, basitten gidelim. Üçüncü indisleri aynı olan array adreslerini nasıl buluruz?
1. ye baktık "d" aramak için işaretledik
2. ye baktık "h"
3. ye baktık "d" bunu kaydettik
4. ye baktık "d" bunu kaydettik
5. ye baktık "z"
arama kayıdı olduğu için 1'i tuttuk diğer adresini kaydettiklerimizi diziden attık. Döngüyü 2.'den itibaren tekrar başlattık
2. ye baktık "h" aramak için kaydettik
3. ye baktık "z"
tekrar yok dizi aynı
n-1 kere tekrar ettiğimiz için "z" ye bakmadık.

Algoritmasını ben de kurabiliyorum ama teşekkürler yine de.

Python numpy kütüphanesi ile yapılabilir ama nasıl?

fide

liste=[["a","b","c","d"],
       [
"e","f","g","h"],
       [
"k","l","m","d"],
       [
"x","y","j","d"],
       [
"p","r","s","z"]]

eklenecekler = []
filtered =[]
for 
i in range(len(liste)):
    if 
liste[i][3not in eklenecekler:
        
eklenecekler.append(liste[i][3])
        
filtered.append(liste[i])

print(
filtered)

pycharm ile denedim çalıştı.
İlk önce boş bir iste oluştur. Sonra 3. elemanları bu listede var mı diye kontrol et. varsa pas geç yoksa ekle. listenin tüm elemanları içinkontrolü yapınca mükerrerlerden kurutlursun.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

muhittin_kaplan

www.ictr.club
www.muhittinkaplan.com

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.