Soru & Cevap

Liste içinde birden fazla aynı elemanın indexte ilkinden sonra görünmüyor.hangi kodla diğer elemanların indexlerini öğrenebiliriz?

01.02.2022 - 11:41

Python 201 eğitimi 

53 Görüntülenme

5 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user thorinmeekalkan
thorinmeekalkan
06.07.2022 - 02:05

# List Comprehension

liste = [3,6,2,8,54,2,8,9,3,2,5,7,2,7,8,2]

detail = [{"Sayı": x, "index": liste.index(x)}

for x in liste] print(detail)

   # Fonksiyonel Programlama liste = [3,6,2,8,54,2,8,9,3,2,5,7,2,7,8,2] x = list(map(lambda x: {'number':x[1], 'rank':x[0]}, enumerate(liste))) print(x)

bu şekilde yapabilirsin.

Profile picture for user caginsucuu
caginsucuu
02.03.2022 - 10:47

Merhaba söylediklerinizi biraz araştırdıktan sonra en iyi uygulanmış 2 örnek buldum. Dediğiniz işlem farklı işlemlerde yapılabiliyor. 1. List Comprehension 2. Fonksiyonel Programlama ile yapılabiliyor  

# List Comprehension

liste = [3,6,2,8,54,2,8,9,3,2,5,7,2,7,8,2]

detail = [{"Sayı": x, "index": liste.index(x)} for x in liste]

print(detail)

# Fonksiyonel Programlama

liste = [3,6,2,8,54,2,8,9,3,2,5,7,2,7,8,2]

x = list(map(lambda x: {'number':x[1], 'rank':x[0]}, enumerate(liste)))

print(x)

 

Profile picture for user ozancltkn
ozancltkn
05.02.2022 - 03:25
firstIndex = liste.index("ali")

secondIndex = liste.index("ali",firstIndex+1)

print(secondIndex)

bu şekilde ikinci sıradaki ali değerinin indexini alabilirsin.

Profile picture for user ysfadnntgtyldz
ysfadnntgtyldz
04.02.2022 - 03:24

çok teşekkür ederim. aradığım soru aslında şu şekilde liste =[ali,ayse,ahmet,ahmet,merve,ali] gibi bir listeden index(ali) dediğimde ilk elemanın index değerine ulaşılıyor. sırayla diğerlerine ulaşmak için döngü kullanmadan bir çözüm olup olmadığını arıyorum.

Çağın Sucu
02.03.2022 - 10:01

Merhaba söylediklerinizi biraz araştırdıktan sonra en iyi uygulanmış 2 örnek buldum. Dediğiniz işlem farklı işlemlerde yapılabiliyor. 1. List Comprehension 2. Fonksiyonel Programlama ile yapılabiliyor  

 

# List Comprehension

liste = [3,6,2,8,54,2,8,9,3,2,5,7,2,7,8,2]

detail = [{"Sayı": x, "index": liste.index(x)} for x in liste]

print(detail)

# Fonksiyonel Programlama

liste = [3,6,2,8,54,2,8,9,3,2,5,7,2,7,8,2]

x = list(map(lambda x: {'number':x[1], 'rank':x[0]}, enumerate(liste)))

print(x)

 

Profile picture for user akontaz
akontaz
04.02.2022 - 09:53

Direkt bir metodu var mı bilmiyorum ama aklıma şöyle bir çözüm geldi;

Öncelikle listeye .sort() metodu ile listeyi dizersin.

Ardından .count() metoduyla istediğin değerden kaç tane olduğunu sorgularsın.

En sonda da .index() nereden başladığını bulursun.

Örnek:

liste = [3,6,2,8,54,2,8,9,3,2,5,7,2,7,8,2]
liste.sort()
liste
[2, 2, 2, 2, 2, 3, 3, 5, 6, 7, 7, 8, 8, 8, 9, 54]

# Bu çıktın olur.

liste.count(2)

liste.index(2)

Az çok fikrin olur