Ini kamusnya
cars = {'A':{'speed':70,
'color':2},
'B':{'speed':60,
'color':3}}
Menggunakan ini for loop
for keys,values in cars.items():
print(keys)
print(values)
Mencetak berikut ini:
B
{'color': 3, 'speed': 60}
A
{'color': 2, 'speed': 70}
Tapi saya ingin program mencetaknya seperti ini:
B
color : 3
speed : 60
A
color : 2
speed : 70
Saya baru saja mulai belajar kamus, jadi saya tidak yakin bagaimana melakukannya.
python
printing
dictionary
Jett
sumber
sumber
cars = {1:4, 2:5}
kemudiancars[x]
adalah bilangan bulat yang dipetakan ke kuncix
daripada satu set dipetakan ke kuncix
. Dalam hal ini, Anda tidak perlu menggunakanfor y in cars[x]:
baris karena hanya ada satu nilai yang Anda ambil, kecuali jika Anda menggunakan sesuatu seperti daftar atau kumpulan bilangan bulat maka itu harus bekerja. Maaf, sudah beberapa bulan jadi saya tidak bisa sepenuhnya mengingat bagaimana saya sampai pada kesimpulan dari komentar saya sebelumnya. Anda dapat mengirim saya kode Anda dan saya dapat melihat apakah saya dapat membantu.Anda dapat menggunakan
json
modul untuk ini. Thedumps
fungsi dalam modul ini mengkonversi objek JSON menjadi string diformat dengan benar yang kemudian dapat mencetak.Outputnya seperti
The dokumentasi juga menentukan sekelompok pilihan berguna untuk metode ini.
sumber
print(json.dumps(cars, indent=4, ensure_ascii=False))
karena karakter non-ASCII tidak dapat dibaca.Solusi yang lebih digeneralisasi yang menangani dicts dan daftar yang bersarang secara semarak adalah:
Ini menghasilkan output:
Saya bertemu dengan kebutuhan yang sama dan mengembangkan fungsi yang lebih kuat sebagai latihan untuk diri saya sendiri. Saya menyertakannya di sini untuk berjaga-jaga. Dalam menjalankan nosetest, saya juga merasa terbantu untuk dapat menentukan aliran output dalam panggilan sehingga sys.stderr dapat digunakan sebagai gantinya.
Menggunakan fungsi ini, output OP terlihat seperti ini:
yang menurut saya pribadi lebih bermanfaat dan deskriptif.
Diberikan contoh yang sedikit kurang sepele dari:
Solusi yang diminta OP menghasilkan ini:
sedangkan versi 'disempurnakan' menghasilkan ini:
Saya harap ini memberikan beberapa nilai kepada orang berikutnya yang mencari jenis fungsi ini.
sumber
pprint.pprint()
sini saja?Anda memiliki struktur bersarang, jadi Anda perlu memformat kamus bersarang juga:
Ini mencetak:
sumber
pprint.pprint()
adalah alat yang baik untuk pekerjaan ini:sumber
sumber
Ini akan berhasil jika Anda tahu pohon itu hanya memiliki dua tingkat:
sumber
Periksa satu-liner berikut:
Keluaran:
sumber
sys.modules
, tapi saya gagal. Ingin mencobanya?Saya lebih suka pemformatan bersih
yaml
:keluaran:
sumber
pip install PyYAML
terlebih dahulu.sumber
sumber
Ini solusi saya untuk masalah ini. Saya pikir itu mirip dalam pendekatan, tetapi sedikit lebih sederhana daripada beberapa jawaban lainnya. Hal ini juga memungkinkan untuk sejumlah sub-kamus yang sewenang-wenang dan tampaknya berfungsi untuk tipe data apa pun (saya bahkan mengujinya pada kamus yang memiliki fungsi sebagai nilai):
sumber
Memodifikasi kode MrWerlang
sumber