2011-09-02 21 views
5

Tôi thực sự mới với python và tôi không thể tìm thấy bất kỳ thông tin nào về điều này. Tôi có một mảng kết hợp item,Làm thế nào để chuyển đổi một mảng kết hợp trong python?

item['id'] = 0 
item['title'] = 'python' 

Tôi muốn xác nhận nội dung của mục nhưng tôi không muốn sử dụng tên chỉ số như 'title' nhưng chỉ có một vòng lặp for và duyệt qua tất cả các mục trong mục bất kể ý nghĩa của chúng . Một cái gì đó như thế

for a in range(0, len(item)): 
    print (item[a]) 

Bất kỳ ý tưởng hoặc đề xuất nào?

Trả lời

16

Trong Python, mảng kết hợp được gọi là dictionaries.

Một cách tốt để lặp qua một dict là sử dụng .iteritems():

for key, value in item.iteritems(): 
    print key, value 

Nếu bạn chỉ cần các giá trị, sử dụng .itervalues():

for value in item.itervalues(): 
    print value 

Khi bạn tìm hiểu thêm về Python và từ điển, lưu ý sự khác biệt giữa .iteritems()/itervalues() (trả về một trình lặp) và items()/values() (trả về một danh sách (mảng)).

Trong Python 3

.iteritems()/.itervalues() đã được loại bỏ và items()/values()/keys() lặp lại trên các trình tự tương ứng.

for key, value in item.items(): 
    print(key) 
    print(value) 
+6

Lưu ý: trong Python 3, những trở thành '.items() 'và' .values ​​() '(và một người mới có thể đã chọn để tải xuống Python 3). –

+0

@Thomas Điểm tốt, cảm ơn. Tôi sẽ để lại câu trả lời như bây giờ vì Python 2 có vẻ vẫn là mặc định cho nhiều bản phân phối và tôi nghĩ điều quan trọng là người mới nhận ra sự khác biệt giữa các trình lặp/máy phát và danh sách. –

+1

Bạn được chào đón. Tôi sẽ thêm rằng nhiều người dùng có thể trên Windows, nơi không có Python mặc định nào cả. Không có ý tưởng nếu điều đó áp dụng cho người hỏi này, nhưng nó đáng xem xét. –

6

Có ba cách để lặp một từ điển:

item = {...} 
for key in item: # alternatively item.iterkeys(), or item.keys() in python 3 
    print key, item[key] 

item = {...} 
for value in item.itervalues(): # or item.values() in python 3 
    print value 

item = {...} 
for key, value in item.iteritems(): # or item.items() in python 3 
    print key, value 
+0

Ahh .. Tôi đã bỏ lỡ ví dụ đầu tiên trong câu trả lời của tôi. Điều đó hữu ích vì nó cho thấy rằng việc lặp lại một 'dict' cung cấp cho bạn các khóa. +1 –

Các vấn đề liên quan