kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 user1478335
user1478335
Question

Nilai ganti kamus Python

Saya memiliki kamus dengan 20.000 lebih entri yang saat ini hanya berisi kata unik dan berapa kali kata itu digunakan dalam teks sumber (Dante's Divine Comedy dalam bahasa Italia).

Saya ingin bekerja melalui semua entri menggantikan nilai dengan definisi aktual saat saya menemukannya. Apakah ada cara sederhana untuk mengulang-ulang kata kunci yang memiliki nilai angka untuk diganti (saat saya meneliti artinya)?

Kamus dimulai:

{'corse': 378, 'cielo,': 209, 'mute;': 16, 'torre,': 11, 'corsa': 53, 'assessin': 21, 'corso': 417, 'Tolomea': 21}  # etc.

Semacam aplikasi yang akan menyarankan kata kunci untuk diteliti dan didefinisikan.

40 2013-11-04T17:37:59+00:00 3
Martijn Pieters
Martijn Pieters
Pertanyaan edit 4 November 2013 в 5:38
Pemrograman
python
dictionary
python-3.x
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Martijn Pieters
Martijn Pieters
4 November 2013 в 5:40
2013-11-04T17:40:59+00:00
Lebih
Sumber
Sunting
#22710949

Anda tidak dapat memilih pada nilai tertentu (atau jenis nilai). Anda harus membuat indeks terbalik (memetakan angka-angka kembali ke (daftar) kunci) atau Anda harus mengulang-ulang semua nilai setiap saat.

Jika Anda memproses angka dalam urutan sembarang, Anda mungkin juga mengulang melalui semua item:

for key, value in inputdict.items():
    # do something with value
    inputdict[key] = newvalue

jika tidak, saya akan menggunakan indeks terbalik:

from collections import defaultdict

reverse = defaultdict(list)
for key, value in inputdict.items():
    reverse[value].append(key)

Sekarang Anda bisa mencari kunci berdasarkan nilai:

for key in reverse[value]:
    inputdict[key] = newvalue
58
0
Andrew Clark
Andrew Clark
4 November 2013 в 5:42
2013-11-04T17:42:37+00:00
Lebih
Sumber
Sunting
#22710950

Jika anda mengiterasi kamus, anda akan mendapatkan kunci-kuncinya, jadi dengan asumsi kamus anda berada dalam variabel yang disebut data dan anda memiliki fungsi find_definition() yang mendapatkan definisinya, anda dapat melakukan sesuatu seperti berikut ini:

for word in data:
    data[word] = find_definition(word)
7
0
Solution / Answer
 jgranger
jgranger
4 November 2013 в 6:27
2013-11-04T18:27:17+00:00
Lebih
Sumber
Sunting
#22710951

Berikut ini adalah fungsi yang akan menemukan kunci Anda dan mengganti nilai Anda.

current_dict = {'corse': 378, 'cielo': 209, 'mute': 16}
print(current_dict)
def replace_value_with_definition(key_to_find, definition):
    for key in current_dict.keys():
        if key == key_to_find:
            current_dict[key] = definition

replace_value_with_definition('corse', 'Definition of "corse"')
print(current_dict)

Keluarannya adalah:

{'corse': 378, 'cielo': 209, 'mute': 16}
{'corse': 'Definition of "corse"', 'cielo': 209, 'mute': 16}

Jika Anda merasa terlalu lama untuk mengulang kamus Anda, cobalah fungsi generator:

def gen_replace_value_with_definition(key_to_find, definition):
    for key in current_dict.keys():
        if key == key_to_find:
            current_dict[key] = definition
            yield True
    yield False

found = False
while not found:
    found = next(gen_replace_value_with_definition('corse', 'Definition of "corse" via generator'))

print(current_dict)

Keluaran:

{'corse': 'Definition of "corse" via generator', 'cielo': 209, 'mute': 16}
 jgranger
jgranger
Jawaban edit 4 November 2013 в 6:32
-56
0
Related communities 6
Python Indonesia
Python Indonesia
25 937 pengguna
Programmer Python Indonesia. Group ini dikelola oleh sejumlah admin. Baca pesan tersemat / pinned message: https://t.me/pythonID/217588
Buka telegram
Indonesian Python Warriors
Indonesian Python Warriors
1 452 pengguna
Di grup ini tidak ada kewajiban untuk menggunakan username dan foto. Yang tidak boleh adalah spamming. Gak boleh baper, kalau nanya yang bener, eror jangan difoto pake HP, gunakan screenshot, code copas ke dpaste.org lalu share link ke sini.
Buka telegram
Python-ID Jogja
Python-ID Jogja
946 pengguna
Buka telegram
Python Newbie Indonesia
Python Newbie Indonesia
384 pengguna
Peraturan grup Python Newbie 🌻Dilarang spam 🌻Dilarang menggunakan bahasa kasar 🌻Dilarang beriklan di grup tanpa seizin admin Beberapa video dasar python dapat diliat melalui channel youtube juan aditya Jangan lupa untuk subscribe ya🙏
Buka telegram
BASIC PYTHON INDONESIA
BASIC PYTHON INDONESIA
342 pengguna
Buka telegram
PythonWealth Indonesia 🇮🇩
PythonWealth Indonesia 🇮🇩
18 pengguna
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Daniel Gogov
Terdaftar 1 minggu yang lalu
2
工藤 芳則
Terdaftar 2 minggu yang lalu
3
Ирина Беляева
Terdaftar 2 minggu yang lalu
4
Darya Arsenyeva
Terdaftar 2 minggu yang lalu
5
anyta nuam-nuam (LapuSiK)
Terdaftar 3 minggu yang lalu
DE
EL
ES
FR
ID
IT
JA
LT
LV
NL
NO
PT
TR
ZH
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi