2012-04-10 36 views
7

Tôi có một cuốn từ điểnLiệt kê các phím trong từ điển?

Dict = {'ALice':1, 'in':2, 'Wonderland':3} 

tôi có thể tìm cách để trở về giá trị quan trọng nhưng không có cách nào để trở lại tên chủ chốt.

Tôi muốn Python để trả lại tên chủ chốt từ điển từng bước (Vòng lặp for) ví dụ:

Alice 
in 
Wonderland 
+0

Tôi có thể bị cám dỗ biến nó thành danh sách các cặp khóa-giá trị phù hợp và sau đó sắp xếp dựa trên giá trị trong ví dụ này và sau đó lặp lại. (Hãy nhớ rằng các phím trong từ điển là * không * đã ra lệnh.) –

+0

Đặt hàng không phải là vấn đề đối với tôi. Tôi không cần nó theo một thứ tự cụ thể. Tôi chỉ cố gắng nhập tên khóa vào cơ sở dữ liệu SQL. – upapilot

Trả lời

13

Bạn có thể sử dụng .keys():

for key in your_dict.keys(): 
    print key 

hoặc chỉ lặp qua các từ điển:

for key in your_dict: 
    print key 

Lưu ý rằng từ điển không được đặt hàng. phím kết quả của bạn sẽ đi ra theo một thứ tự nào ngẫu nhiên:

['Wonderland', 'ALice', 'in'] 

Nếu bạn quan tâm đến trật tự, một giải pháp sẽ được sử dụng danh sách, mà ra lệnh:

sort_of_dict = [('ALice', 1), ('in', 2), ('Wonderland', 3)] 

for key, value in sort_of_dict: 
    print key 

Bây giờ bạn nhận được kết quả mong muốn:

>>> sort_of_dict = [('ALice', 1), ('in', 2), ('Wonderland', 3)] 
>>> 
>>> for key, value in sort_of_dict: 
... print key 
... 
ALice 
in 
Wonderland 
+0

Vâng, tôi đã chỉnh sửa nội dung đó. Cảm ơn! – Blender

+1

'cho khóa trong your_dict.keys():' có thể được đơn giản hóa thành 'cho khóa trong your_dict:' –

+0

Được rồi, cảm ơn rất nhiều. Đặt hàng không phải là vấn đề đối với tôi :) – upapilot

1

dict có phương thức keys().

Dict.keys() sẽ trả về danh sách các phím hoặc sử dụng các phương thức lặp iterator().

1
def enumdict(listed): 
    myDict = {} 
    for i, x in enumerate(listed): 
     myDict[x] = i 

    return myDict 

indexes = ['alpha', 'beta', 'zeta'] 

print enumdict(indexes) 

in: { 'alpha': 0, 'beta': 1, 'zeta': 2}

Edit: nếu bạn muốn dict được ra lệnh sử dụng ordereddict.

+0

Không chính xác một câu trả lời cho câu hỏi nhưng tôi upvoted vì nó là thủ thuật tiện dụng. – ardochhigh

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