Kamus python memetakan nilai ke kunci

Membuat kamus dengan kunci yang sama dengan kamus yang disediakan dan nilai yang dihasilkan dengan menjalankan fungsi yang disediakan untuk setiap nilai

  • Gunakan dict.items()_ untuk mengulangi kamus, menetapkan nilai yang dihasilkan oleh fn ke setiap kunci kamus baru

def map_values(obj, fn):
  return dict((k, fn(v)) for k, v in obj.items())

Lebih seperti ini

  • Menggabungkan dua kamus atau lebih, membuat daftar nilai untuk setiap kunci

  • Temukan semua kunci dalam kamus yang disediakan yang memiliki nilai yang diberikan

  • Menemukan kunci pertama dalam kamus yang disediakan yang memiliki nilai yang diberikan

Struktur tabel hash kunci/nilai Python yang efisien disebut "dict". Isi dict dapat ditulis sebagai rangkaian kunci. pasangan nilai dalam kurung kurawal {}, e. g. dict = {key1. nilai1, kunci2. nilai2,. }. "Dict kosong" hanyalah sepasang kurung kurawal kosong {}

Mencari atau mengatur nilai dalam dict menggunakan tanda kurung siku, mis. g. dict['foo'] mencari nilai di bawah kunci 'foo'. String, angka, dan tupel berfungsi sebagai kunci, dan tipe apa pun bisa menjadi nilai. Jenis lain mungkin atau mungkin tidak berfungsi dengan benar sebagai kunci (string dan tupel berfungsi dengan baik karena tidak dapat diubah). Mencari nilai yang tidak ada di dict akan memunculkan KeyError -- gunakan "in" untuk memeriksa apakah kunci ada di dict, atau gunakan dict. get(key) yang mengembalikan nilai atau Tidak ada jika kunci tidak ada (atau get(key, not-found) memungkinkan Anda untuk menentukan nilai apa yang akan dikembalikan dalam kasus tidak ditemukan)

  ## Can build up a dict by starting with the the empty dict {}
  ## and storing key/value pairs into the dict like this:
  ## dict[key] = value-for-that-key
  dict = {}
  dict['a'] = 'alpha'
  dict['g'] = 'gamma'
  dict['o'] = 'omega'

  print(dict) ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}

  print(dict['a'])     ## Simple lookup, returns 'alpha'
  dict['a'] = 6       ## Put new key/value into dict
  'a' in dict         ## True
  ## print(dict['z'])                  ## Throws KeyError
  if 'z' in dict: print(dict['z'])     ## Avoid KeyError
  print(dict.get('z'))  ## None (instead of KeyError)
_

Kamus python memetakan nilai ke kunci

A for loop pada kamus mengulang kuncinya secara default. Kunci akan muncul dalam urutan sewenang-wenang. Metode dict. kunci() dan dict. values() mengembalikan daftar kunci atau nilai secara eksplisit. Ada juga items() yang mengembalikan daftar tupel (kunci, nilai), yang merupakan cara paling efisien untuk memeriksa semua data nilai kunci dalam kamus. Semua daftar ini dapat diteruskan ke fungsi sortir()

  ## By default, iterating over a dict iterates over its keys.
  ## Note that the keys are in a random order.
  for key in dict: print(key)
  ## prints a g o
  
  ## Exactly the same as above
  for key in dict.keys(): print(key)

  ## Get the .keys() list:
  print(dict.keys())  ## dict_keys(['a', 'o', 'g'])

  ## Likewise, there's a .values() list of values
  print(dict.values())  ## dict_values(['alpha', 'omega', 'gamma'])

  ## Common case -- loop over the keys in sorted order,
  ## accessing each key/value
  for key in sorted(dict.keys()):
    print(key, dict[key])
  
  ## .items() is the dict expressed as (key, value) tuples
  print(dict.items())  ##  dict_items([('a', 'alpha'), ('o', 'omega'), ('g', 'gamma')])

  ## This loop syntax accesses the whole dict by looping
  ## over the .items() tuple list, accessing one (key, value)
  ## pair on each iteration.
  for k, v in dict.items(): print(k, '>', v)
  ## a > alpha    o > omega     g > gamma

Catatan strategi. dari sudut pandang kinerja, kamus adalah salah satu alat terhebat Anda, dan Anda harus menggunakannya semampu Anda sebagai cara mudah untuk mengatur data. Misalnya, Anda mungkin membaca file log di mana setiap baris dimulai dengan alamat IP, dan menyimpan data ke dalam dict menggunakan alamat IP sebagai kuncinya, dan daftar baris yang muncul sebagai nilainya. Setelah Anda membaca seluruh file, Anda dapat mencari alamat IP apa pun dan langsung melihat daftar barisnya. Kamus mengambil data yang tersebar dan membuatnya menjadi sesuatu yang koheren

Pemformatan Dikte

Operator % bekerja dengan nyaman untuk mengganti nilai dari dict menjadi string dengan nama

  h = {}
  h['word'] = 'garfield'
  h['count'] = 42
  s = 'I want %(count)d copies of %(word)s' % h  # %d for int, %s for string
  # 'I want 42 copies of garfield'

  # You can also use str.format().
  s = 'I want {count:d} copies of {word}'.format(h)

Del

Operator "del" melakukan penghapusan. Dalam kasus yang paling sederhana, ini dapat menghilangkan definisi dari sebuah variabel, seolah-olah variabel tersebut belum didefinisikan. Del juga dapat digunakan pada elemen atau irisan daftar untuk menghapus bagian daftar itu dan untuk menghapus entri dari kamus

  var = 6
  del var  # var no more!
  
  list = ['a', 'b', 'c', 'd']
  del list[0]     ## Delete first element
  del list[-2:]   ## Delete last two elements
  print(list)      ## ['b']

  dict = {'a':1, 'b':2, 'c':3}
  del dict['b']   ## Delete 'b' entry
  print(dict)      ## {'a':1, 'c':3}
_

File

Fungsi open() membuka dan mengembalikan pegangan file yang dapat digunakan untuk membaca atau menulis file dengan cara biasa. Kode f = open('name', 'r') membuka file ke dalam variabel f, siap untuk membaca operasi, dan menggunakan f. tutup() setelah selesai. Alih-alih 'r', gunakan 'w' untuk menulis, dan 'a' untuk menambahkan. For-loop standar berfungsi untuk file teks, mengulang melalui baris file (ini hanya berfungsi untuk file teks, bukan file biner). Teknik for-loop adalah cara sederhana dan efisien untuk melihat semua baris dalam file teks

  # Echo the contents of a text file
  f = open('foo.txt', 'rt', encoding='utf-8')
  for line in f:   ## iterates over the lines of the file
    print(line, end='')    ## end='' so print does not add an end-of-line char
                           ## since 'line' already includes the end-of-line.
  f.close()

Membaca satu baris pada satu waktu memiliki kualitas yang bagus sehingga tidak semua file perlu masuk ke dalam memori sekaligus - berguna jika Anda ingin melihat setiap baris dalam file 10 gigabyte tanpa menggunakan memori 10 gigabyte. f. metode readlines() membaca seluruh file ke dalam memori dan mengembalikan isinya sebagai daftar barisnya. f. metode read() membaca seluruh file menjadi satu string, yang bisa menjadi cara praktis untuk menangani teks sekaligus, seperti dengan ekspresi reguler yang akan kita lihat nanti

Untuk menulis, f. metode write(string) adalah cara termudah untuk menulis data ke file keluaran terbuka. Atau Anda dapat menggunakan "print" dengan file terbuka seperti "print(string, file=f)"

File Unicode

Untuk membaca dan menulis file yang disandikan unicode gunakan mode `'t'` dan secara eksplisit tentukan penyandian

with open('foo.txt', 'rt', encoding='utf-8') as f:
  for line in f:
    # here line is a *unicode* string
  
with open('write_test', encoding='utf-8', mode='wt') as f:
    f.write('\u20ACunicode\u20AC\n') #  €unicode€
    # AKA print('\u20ACunicode\u20AC', file=f)  ## which auto-adds end='\n'
_

Latihan Pengembangan Inkremental

Membangun program Python, jangan menulis semuanya dalam satu langkah. Alih-alih mengidentifikasi hanya tonggak pertama, mis. g. "baik langkah pertama adalah mengekstrak daftar kata. "Tulis kode untuk mencapai pencapaian tersebut, dan cetak saja struktur data Anda pada saat itu, lalu Anda dapat melakukan sistem. exit(0) sehingga program tidak berjalan maju ke bagian yang belum selesai. Setelah kode tonggak berfungsi, Anda dapat mengerjakan kode untuk tonggak berikutnya. Mampu melihat cetakan variabel Anda di satu keadaan dapat membantu Anda berpikir tentang bagaimana Anda perlu mengubah variabel tersebut untuk menuju ke keadaan berikutnya. Python sangat cepat dengan pola ini, memungkinkan Anda membuat sedikit perubahan dan menjalankan program untuk melihat cara kerjanya. Manfaatkan perputaran cepat itu untuk membangun program Anda dalam langkah-langkah kecil

Latihan. jumlah kata. py

Menggabungkan semua materi Python dasar -- string, daftar, dikte, tuple, file -- coba rangkuman jumlah kata. py latihan di Latihan Dasar

Cara memetakan kunci

Metode #1. Menggunakan pemahaman kamus . Dalam hal ini, kami mengulangi kunci daftar dan menyusun kamus pasangan nilai kunci yang diperlukan menggunakan pemahaman kamus.

Bisakah kita mendapatkan kunci dari nilai di kamus Python?

Untuk mendapatkan kunci dari nilai di kamus, gunakan metode pemahaman daftar dan item() . Untuk pemahaman daftar dan pengulangan untuk kamus, lihat artikel berikut. Berikut ini adalah contoh kode untuk mendapatkan daftar kunci yang dipasangkan dengan nilai tertentu.

Bagaimana cara mendapatkan kunci dari kamus Python?

kunci Kamus Python() . The keys() method extracts the keys of the dictionary and returns the list of keys as a view object.

Bagaimana cara mengulang nilai dalam kamus Python?

Ada beberapa cara untuk mengulangi kamus dengan Python. .
Akses kunci menggunakan build. kunci()
Akses kunci tanpa menggunakan kunci()
Ulangi semua nilai menggunakan. nilai()
Ulangi semua kunci, dan pasangan nilai menggunakan item()
Akses kunci dan nilai tanpa menggunakan item()
Mencetak item dalam Nilai-Kunci secara berpasangan