Jadi saya mencoba membuat program ini yang akan meminta pengguna untuk memasukkan dan menyimpan nilai dalam larik / daftar.
Kemudian ketika baris kosong dimasukkan, itu akan memberi tahu pengguna berapa banyak dari nilai-nilai itu yang unik.
Saya membangun ini untuk alasan kehidupan nyata dan bukan sebagai kumpulan masalah.
enter: happy
enter: rofl
enter: happy
enter: mpg8
enter: Cpp
enter: Cpp
enter:
There are 4 unique words!
Kode saya adalah sebagai berikut:
# ask for input
ipta = raw_input("Word: ")
# create list
uniquewords = []
counter = 0
uniquewords.append(ipta)
a = 0 # loop thingy
# while loop to ask for input and append in list
while ipta:
ipta = raw_input("Word: ")
new_words.append(input1)
counter = counter + 1
for p in uniquewords:
..dan hanya itu yang saya dapatkan sejauh ini.
Saya tidak yakin bagaimana cara menghitung jumlah kata unik dalam daftar?
Jika seseorang dapat memposting solusi sehingga saya dapat belajar darinya, atau setidaknya menunjukkan kepada saya bagaimana solusi itu akan bagus, terima kasih!
Jawaban:
Selain itu, gunakan collections.Counter untuk memfaktorkan ulang kode Anda:
Keluaran:
sumber
Counter(words).values()
bagus. Kami mengasumsikan hitungannya dalam urutan kemunculan pertama daftar kata? Maksud saya, saya mengasumsikan hitungan akan memberi kita hitungan a, lalu b, lalu c, lalu d ...count_dict = {'a': 2, 'b': 1, 'c': 1}
yang dapat Anda lakukancount_dict = dict(Counter(words).items())
Anda dapat menggunakan satu set untuk menghapus duplikat, lalu fungsi len untuk menghitung elemen dalam set:
sumber
values, counts = np.unique(words, return_counts=True)
sumber
Gunakan satu set :
Berbekal ini, solusi Anda bisa sesederhana:
sumber
sumber
Untuk ndarray ada metode numpy yang disebut unique :
Contoh:
Untuk Seri ada panggilan fungsi value_counts () :
sumber
sumber
Meskipun satu set adalah cara termudah, Anda juga dapat menggunakan dict dan menggunakan
some_dict.has(key)
untuk mengisi kamus hanya dengan kunci dan nilai unik.Dengan asumsi Anda telah mengisi
words[]
dengan masukan dari pengguna, buat dict yang memetakan kata-kata unik dalam daftar ke angka:sumber
Cara lain dengan menggunakan panda
Anda kemudian dapat mengekspor hasil dalam format apa pun yang Anda inginkan
sumber
Bagaimana tentang:
Ini mengembalikan berapa banyak nilai unik dalam daftar
sumber
pandas
kerangka kerja. Akan lebih baik untuk menyebutkannya dalam jawaban karena mungkin tidak jelas bagi pengguna lain.Berikut ini seharusnya bekerja. Fungsi lambda menyaring kata-kata yang digandakan.
sumber
Saya akan menggunakan satu set sendiri, tetapi inilah cara lain:
sumber
sumber