Hướng dẫn can we change order of dictionary in python? - chúng ta có thể thay đổi thứ tự của từ điển trong python không?

Xin chào, tôi cần trợ giúp trong trường hợp này, vấn đề là tôi sử dụng từ điển để tạo menu và tôi muốn thay đổi thứ tự của menu, ví dụ, nếu người dùng chọn tùy chọn 6: "6. Chọn tùy chọn yêu thích Trên menu "Thứ tự của menu sẽ thay đổi theo cách: tùy chọn yêu thích có được vị trí đầu tiên và phần còn lại của các tùy chọn thay đổi vị trí. Điều kiện khác là không bao giờ vị trí 6 và 7 nên thay đổi. Câu hỏi của tôi là làm thế nào tôi có thể thay đổi thứ tự trong từ điển tùy thuộc vào một điều kiện nhất định? Nếu bạn có câu trả lời và bạn giúp tôi, cảm ơn bạn rất nhiều! https://code.sololearn.com/ciewfcml0e7b/?ref=app

Brahian Suárez, chỉ để chắc chắn rằng tôi đã nhận được nó. Giả sử rằng chúng ta có một menu như: "1. Input" "2. xử lý" "3. Đầu ra" bây giờ "3. Đầu ra" sẽ di chuyển lên trên cùng và có thể là: "3. Đầu ra" "1. Đầu vào" "2. xử lý" hoặc có thể là: "1. đầu ra" "2. đầu vào" "3. Quy trình" sẽ rất hữu ích nếu bạn có thể đưa ra một mẫu như được hiển thị bởi tôi. cảm ơn

Hướng dẫn can we change order of dictionary in python? - chúng ta có thể thay đổi thứ tự của từ điển trong python không?

Brahian Suárez, đây là một cách làm thế nào để thực hiện nhiệm vụ như bạn đã mô tả: (Điều này sử dụng Python 3.7 và Dict thông thường. Không quá khó nếu bạn muốn thay đổi theo lệnh theo lệnh như visph đã đề cập) menu = {1 : ". new_dict = {k: v cho k, v trong menu.items () nếu k == elem} # trích xuất elem để di chuyển menu.pop (elem, none) # xóa elem để di chuyển trong menu dict new_dict.update (menu) # Trò chơi Menu Dict With Update () vào New_Dict Print (new_dict) Mã hóa hạnh phúc!

Hướng dẫn can we change order of dictionary in python? - chúng ta có thể thay đổi thứ tự của từ điển trong python không?

Lothar cảm ơn bạn đã trả lời! Vâng, bạn đã hiểu, đây là suy nghĩ mà tôi muốn thực hiện. Ví dụ: #Đây là menu menu của tôi = {1: "1.hello" 2: "2.Mood bye" 3: "3.hi, có"} #now Tôi thiết lập một biến yêu thích = int (input ("Chọn Một tùy chọn yêu thích: ")) Tạm biệt "1:" 1.hello "} #Tôi biết rằng tôi có thể lập nó với một danh sách, nhưng tôi muốn làm điều này với một từ điển nhưng tôi không biết liệu điều này có thể không. Tôi hy vọng lần này tôi đã rõ ràng

Hướng dẫn can we change order of dictionary in python? - chúng ta có thể thay đổi thứ tự của từ điển trong python không?

Tùy thuộc vào phiên bản Python mà bạn sẽ/cần hỗ trợ, bạn có thể chọn giữa Dict-in hoặc OrderedDict từ Mô-đun Bộ sưu tập ... Cựu thứ tự giữ khóa kể từ Python 3.6, trong khi sau đó được thiết kế để giữ các khóa được đặt hàng (Python 3.1) . Tuy nhiên, OrderedDict có lẽ là sự lựa chọn tốt hơn trong trường hợp của bạn: Tương thích ngược lớn hơn, tính năng như Move_To_END () (Python 3.2, không có sẵn cho Dict thường xuyên) và hỗ trợ đảo ngược () để lặp lại (Python 3.5, chỉ di động chỉ kể từ 3.8) Nếu bạn chỉ cần hỗ trợ từ Python 3.5, sẽ tương đối dễ dàng để thực hiện tính năng menu của bạn với OrderedDict theo thứ tự ngược Cấu trúc (lần đầu tiên được in);)

Hướng dẫn can we change order of dictionary in python? - chúng ta có thể thay đổi thứ tự của từ điển trong python không?

  • bộ sưu tập
  • Đặt hàng



examples/dictionary/change_order.py

from collections import OrderedDict

d = OrderedDict()
d['a'] = 1
d['b'] = 2
d['c'] = 3
d['d'] = 4

print(d)
d.move_to_end('a')

print(d)
d.move_to_end('d', last=False)

print(d)

for key in d.keys():
    print(key)

OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
OrderedDict([('b', 2), ('c', 3), ('d', 4), ('a', 1)])
OrderedDict([('d', 4), ('b', 2), ('c', 3), ('a', 1)])
d
b
c
a


  • Chỉ mục (i)
  • Mục lục (t)
  • Từ khóa được lập chỉ mục (k)
  • Chương TOC (D)
  • Ẩn/Show (H)

Làm cách nào để thay đổi thứ tự của một từ điển được đặt hàng?

Có thể thay đổi thứ tự của các khóa theo thứ tự bằng cách di chuyển chúng sang phần đầu hoặc phần cuối của chuỗi bằng cách sử dụng di chuyển_to_end (). Đối số cuối cùng cho Move_to_end () () di chuyển mục đó là mục cuối cùng trong chuỗi khóa (khi đúng) hoặc đầu tiên (khi sai).moving them to either the beginning or the end of the sequence using move_to_end() . The last argument tells move_to_end() whether to move the item to be the last item in the key sequence (when True ) or the first (when False ).

Bạn có thể thay đổi thứ tự của các phím trong một python từ điển không?

Dicts được "chính thức" được duy trì theo thứ tự chèn bắt đầu từ 3.7.Họ đã được đặt hàng trong 3.6, nhưng nó không được đảm bảo trước 3.7.Trước 3.6, bạn không thể làm gì để ảnh hưởng đến thứ tự các phím xuất hiện.Nhưng đặt hàng có thể được sử dụng thay thế.Before 3.6, there is nothing you can do to affect the order in which keys appear. But OrderedDict can be used instead.

Bạn có thể đặt hàng từ điển trong Python không?

Không thể sắp xếp một từ điển, chỉ để có được một đại diện của một từ điển được sắp xếp.Từ điển vốn đã không có trật tự, nhưng các loại khác, chẳng hạn như danh sách và bộ dữ liệu, thì không.Vì vậy, bạn cần một loại dữ liệu được đặt hàng để thể hiện các giá trị được sắp xếp, đây sẽ là một danh sách có lẽ là một danh sách các bộ dữ liệu., only to get a representation of a dictionary that is sorted. Dictionaries are inherently orderless, but other types, such as lists and tuples, are not. So you need an ordered data type to represent sorted values, which will be a list—probably a list of tuples.

Dict có duy trì trật tự không?

Các đối tượng Dict Standard bảo tồn thứ tự trong các triển khai tham chiếu (CPYThon) của Python 3.5 và 3.6, và thuộc tính bảo tồn thứ tự này đang trở thành một tính năng ngôn ngữ trong Python 3.7.