Trong nhiều trường hợp, đây có thể là một vấn đề XY . Tại sao bạn lập chỉ mục các khóa từ điển của bạn theo vị trí? Bạn có thực sự cần? Cho đến gần đây, từ điển thậm chí không được đặt hàng trong Python, vì vậy việc truy cập phần tử đầu tiên là tùy ý.
Tôi vừa dịch một số mã Python 2 sang Python 3:
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
Điều đó không đẹp, nhưng cũng không tệ lắm. Lúc đầu, tôi chuẩn bị thay thế nó bằng sự quái dị
k = next(itertools.islice(iter(keys), i, None))
trước khi tôi nhận ra đây là một văn bản tốt hơn nhiều
for (k, res) in zip(d.keys(), some_list):
mà hoạt động tốt
Tôi tin rằng trong nhiều trường hợp khác, việc lập chỉ mục các khóa từ điển theo vị trí có thể tránh được. Mặc dù từ điển được đặt hàng trong Python 3.7, nhưng dựa vào đó là không đẹp. Mã ở trên chỉ hoạt động vì nội dung của some_list
gần đây đã được sản xuất từ nội dung của d
.
Hãy nhìn kỹ vào mã của bạn nếu bạn thực sự cần truy cập một disk_keys
phần tử theo chỉ mục. Có lẽ bạn không cần.
dict.keys()
trả về một tập hợp như đối tượng xem, không liệt kê (vì vậy, không thể lập chỉ mục). Sử dụngkeys = list(test)