Liste.count harf yerine eleman sayısı?

Merhaba arkadaşlar şimdi liste içindeki elemanlardan bir tanesinin kaç tane liste içinde mevcut olduğunu öğrenmek istiyorum count kodu ile harf veya rakamların sayısını söylüyor.Bana lazım olan liste=[1,2,3,1,20,1,2,20] mesala 2 sayısı kac tane olduğunu öğrenmek istiyorum count komutu ile 20 sayısının içindeki elemanıda dahil ediyor. sadece 2 kaç kere yazılmış

Merhaba.

Eleman sayısını öğrenmek için len() metodunu kullanmanız gerekiyor.

a = [1, 2, "a", "b"]
print(len(a))
# Sonuç: 4
1 Beğeni

Teşekkür ederim yardımlarınız için…len toplam liste sayısını öğrenmek için onu biliyorum count ise tüm liste içindeki elemanın kaç kere geçtiğini gösteriyor sadece listenin 1 elemanı kaç kere liste içinde yazılmış yada olduğunu öğrenmek istiyorum.

Hayır dahil etmiyor.

a = [1, 2, 3, 20, 12, 2, 25]
print(a.count(2))
# Sonuç: 2
1 Beğeni
listemiz = open("dogru_yalnis_kontrol/deneme.txt", "r").read()

listemizi = listemiz.split()

liste2 = []

for xa in listemizi:

    say = listemiz.count(xa)

    if (say == 2):
        liste2.append(xa)

print(liste2)

Olmuyor dosyanın içinde 1 2 3 100 1 2 3
var bunları forla yazdırdığımda gelen sayıyı countla içerisinde yazdığımda 1 sayısını 3 tane olduğunu söylüyor.

open ile okuduğunuz dosyanın içeriği string olarak okunur. Bu yüzden 100’deki 1’yi de sayıyor. Kodlarınızda bir düzenleme yapmanız gerekiyor.

1 Beğeni

Hocam şimdi str olarak okuyor dediniz sayıların arasında boşluk var ve ben bunları listeye çevirip döngüyle çekiyorum int olarak geliyor…

Varmı bildiğiniz bir yöntemi

Mesela aşağıdaki kodları çalıştırın bir isterseniz. Dosyanın ismini test.txt olarak değişirdim. Bu kodlar 100 rakamının içindeki 1 sayısını saymayacaklardır.

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

listemiz = open("test.txt", "r").read()

listemizi = listemiz.split()
for i, j in enumerate(listemizi):
    if j.isnumeric():
        listemizi[i] = int(j)
       

liste2 = []

for i in listemizi:
    say = listemizi.count(i)
    if (say == 2):
        if i not in liste2:
            liste2.append(i)

print(liste2)
1 Beğeni

Oldu hocam ellerinize sağlık çok teşekkür ederim gerçekten.

Veya şöyle de yapılabilirdi:

listemiz = open("test.txt", "r").read()

listemizi = lambda x: list(map(lambda i: int(x.split()[i]), range(len(x.split()))))

liste2 = []

for i in listemizi(listemiz):
    say = listemizi(listemiz).count(i)
    if (say == 2):
        if i not in liste2:
            liste2.append(i)

print(liste2)
1 Beğeni

Buda olur hocam çok teşekkür ediyorum :slight_smile: :slight_smile:

Şu da olur: :slight_smile:

listemiz = open("test.txt", "r").read()
listemizi = [int(i) if i.isnumeric() else i for i in listemiz.split()]

liste2 = []

for i in listemizi:
    say = listemizi.count(i)
    if (say == 2):
        if i not in liste2:
            liste2.append(i)

print(liste2)

Yeterli buna gerek yoktu :smiley:

Ne yapalım oldu bir kere. :slight_smile:

1 Beğeni

Canınız sağolsun Hocam.Çok sağolun çok teşekkür ediyorum :slight_smile:

1 Beğeni

Rica ederim, iyi günler.

Sn @dildeolupbiten bu konuya yazdiginiz kodlarda dongude sayilan i degerini atadiginiz say degiskeni 2 ye neden esit ise dediniz belki cok basit ama ben kafama oturtamadim. Tesekkurler

if (say == 2):

Çünkü sanırım 2 sayısının kaç tane olduğunu bulmaya çalışıyorlar. Yanlış olabilir daha pythona başlayalı 1.5 ay oldu.