Pada Latihan 39 dari Learn Python The Hard Way, baris 37 hingga 39 terlihat seperti ini:
print "-"*10
for state, abbrev in states.items():
print "%s has the city %s" % (state, abbrev)
Saya pikir saya memahami hal ini. Saya pikir Python mengambil KEY:VALUE dari "negara bagian" dan menugaskan KEY ke "negara bagian" dan VALUE ke "singkatan".
Namun, saya menemukan sesuatu yang aneh terjadi ketika saya memasukkan kode berikut:
print "-"*10
for test in states.items():
print "%s has the city %s" % (test)
Ini menghasilkan output yang sama dengan kode aslinya. Namun, ini hanya berfungsi jika Anda memasukkan %s
ke dalam pernyataan print dua kali.
Adakah yang bisa menjelaskan apa yang terjadi dengan "tes"? Apa sebenarnya "tes" itu? Apakah itu Tupel? Tampaknya berisi KEY
dan VALUE
dari states.items()
.
Saya telah memeriksa beberapa pertanyaan lain pada Latihan 39 di sini dan saya belum menemukan pertanyaan yang sama.
Kode tercantum di bawah ini (untuk Python 2.7)
# create a mapping of state to abbreviation
states = {
'Oregan': 'OR',
'Florida': 'FL',
'California': 'CA',
'New York' : 'NY',
'Michigan' : 'MI'
}
print "-"*10
for state, abbrev in states.items():
print "%s has the city %s" % (state, abbrev)
print "-"*10
for test in states.items():
print "%s has the city %s" % (test)