Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

Khi nào tôi nên sử dụng từ điển, danh sách hoặc bộ?

Có kịch bản phù hợp hơn cho từng loại dữ liệu không?

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

DREFTYMAC

30.5K26 Huy hiệu vàng116 Huy hiệu bạc179 Huy hiệu đồng26 gold badges116 silver badges179 bronze badges

Hỏi ngày 15 tháng 8 năm 2010 lúc 20:22Aug 15, 2010 at 20:22

BlankmanblankmanBlankman

253K315 Huy hiệu vàng748 Huy hiệu bạc1177 Huy hiệu đồng315 gold badges748 silver badges1177 bronze badges

Một list giữ đơn đặt hàng, dictset không: Khi bạn quan tâm đến trật tự, do đó, bạn phải sử dụng list (nếu sự lựa chọn của bạn về container bị giới hạn trong ba thứ này, tất nhiên là ;-)).

dict liên kết từng khóa với một giá trị, trong khi listset chỉ chứa các giá trị: các trường hợp sử dụng rất khác nhau, rõ ràng.

set yêu cầu các mục phải được băm, list không: Nếu bạn có các mặt hàng không thể bỏ qua, do đó, bạn không thể sử dụng set và thay vào đó phải sử dụng list.

set cấm trùng lặp, list không: cũng là một sự khác biệt quan trọng. . Pre-7.7 Python dưới dạng

dictionary_of_transport = {
    "cars": 8,
    "boats": 2,
    "planes": 0
}
print("I have the following amount of planes:")
print(dictionary_of_transport["planes"])
#Output: 0
8, sử dụng các mục làm khóa và giá trị liên quan làm số đếm).

Kiểm tra tư cách thành viên của một giá trị trong một set (hoặc dict, đối với các khóa) rất nhanh (mất khoảng thời gian ngắn, trong thời gian ngắn), trong khi trong danh sách cần có thời gian tỷ lệ thuận với độ dài của danh sách trong các trường hợp trung bình và tồi tệ nhất. Vì vậy, nếu bạn có các mục có thể băm, không quan tâm đến việc đặt hàng hoặc trùng lặp và muốn kiểm tra thành viên nhanh chóng, set tốt hơn list.

Josh Correia

3.2063 huy hiệu vàng26 Huy hiệu bạc44 Huy hiệu đồng3 gold badges26 silver badges44 bronze badges

Đã trả lời ngày 15 tháng 8 năm 2010 lúc 20:30Aug 15, 2010 at 20:30

Alex Martellialex MartelliAlex Martelli

831K165 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng165 gold badges1205 silver badges1385 bronze badges

1

  • Bạn chỉ cần một chuỗi các mục được đặt hàng? Đi cho một danh sách.
  • Bạn có chỉ cần biết liệu bạn có có giá trị cụ thể hay không, nhưng không đặt hàng (và bạn không cần lưu trữ trùng lặp)? Sử dụng một bộ.
  • Bạn có cần liên kết các giá trị với các khóa, vì vậy bạn có thể tìm kiếm chúng một cách hiệu quả (bằng khóa) sau này? Sử dụng một từ điển.

Đã trả lời ngày 15 tháng 8 năm 2010 lúc 20:24Aug 15, 2010 at 20:24

Jon Skeetjon SkeetJon Skeet

1.4M842 Huy hiệu vàng9008 Huy hiệu bạc9115 Huy hiệu Đồng842 gold badges9008 silver badges9115 bronze badges

3

Khi bạn muốn một bộ sưu tập các yếu tố độc đáo không có thứ tự, hãy sử dụng set. (Ví dụ: khi bạn muốn tập hợp tất cả các từ được sử dụng trong một tài liệu).

Khi bạn muốn thu thập một danh sách các yếu tố được đặt hàng bất biến, hãy sử dụng list4. .

Khi bạn muốn thu thập một danh sách các yếu tố có thể thay đổi, hãy sử dụng list. (Ví dụ: khi bạn muốn nối các số điện thoại mới vào danh sách: [Số 1, Số 2, ...]).

Khi bạn muốn ánh xạ từ các phím đến các giá trị, hãy sử dụng dict. (Ví dụ: khi bạn muốn một danh sách điện thoại ánh xạ tên vào số điện thoại: list7). Lưu ý các phím trong một dict không được đặt hàng. .

Đã trả lời ngày 15 tháng 8 năm 2010 lúc 20:25Aug 15, 2010 at 20:25

UnutbuUnutbuunutbu

806K173 Huy hiệu vàng1735 Huy hiệu bạc1633 Huy hiệu Đồng173 gold badges1735 silver badges1633 bronze badges

2

  • Sử dụng từ điển khi bạn có một bộ các khóa duy nhất ánh xạ tới các giá trị.

  • Sử dụng danh sách nếu bạn có một bộ sưu tập các mặt hàng được đặt hàng.

  • Sử dụng một bộ để lưu trữ một tập hợp các mục không có thứ tự.

Đã trả lời ngày 15 tháng 8 năm 2010 lúc 20:25Aug 15, 2010 at 20:25

UnutbuUnutbuSLaks

806K173 Huy hiệu vàng1735 Huy hiệu bạc1633 Huy hiệu Đồng174 gold badges1881 silver badges1949 bronze badges

Sử dụng từ điển khi bạn có một bộ các khóa duy nhất ánh xạ tới các giá trị.

Sử dụng danh sách nếu bạn có một bộ sưu tập các mặt hàng được đặt hàng.

Sử dụng một bộ để lưu trữ một tập hợp các mục không có thứ tự.

Slaksslaks

851K174 Huy hiệu vàng1881 Huy hiệu bạc1949 Huy hiệu đồng

Nói tóm lại, sử dụng:

list - Nếu bạn yêu cầu một chuỗi các mục được đặt hàng.

dict - Nếu bạn cần liên hệ các giá trị với các khóa

  • set - Nếu bạn cần phải giữ các yếu tố duy nhất.
  • Giải thích chi tiết
  • Danh sách
  • dict9
  • Danh sách là một chuỗi có thể thay đổi, thường được sử dụng để lưu trữ các bộ sưu tập các mặt hàng đồng nhất.

Danh sách thực hiện tất cả các hoạt động trình tự chung:

  • dict1 và dict2
  • dict3, dict4, dict5
  • dict6, dict7, dict8
  • set0 - Chỉ số của lần xuất hiện đầu tiên của set1 trong set2 (tại hoặc sau set3 và trước set4 Indyes)
  • Một danh sách cũng thực hiện tất cả các hoạt động chuỗi có thể thay đổi:
  • set5 - Mục set3 của set2 được thay thế bằng set1
  • set9 - Cắt lát từ set3 đến set4 được thay thế bằng nội dung của list3
  • list4 - Giống như list5
  • dict9 hoặc list0 - Mở rộng set2 với nội dung của list3
  • list3 - Cập nhật set2 với nội dung của nó lặp lại list5 lần
  • list6 - Chèn set1 vào set2 tại chỉ số được đưa ra bởi set3
  • set0 - ​​Lấy vật phẩm tại set3 và cũng loại bỏ nó khỏi set2
  • set3 - Xóa mục đầu tiên khỏi set2 trong đó dict3 bằng x
  • set6 - đảo ngược các mục của set2 tại chỗ

Một danh sách có thể được sử dụng làm ngăn xếp bằng cách tận dụng các phương thức set8 và set9.

Từ điển

Một bản đồ từ điển có thể các giá trị băm cho các đối tượng tùy ý. Một từ điển là một đối tượng có thể thay đổi. Các hoạt động chính trên từ điển đang lưu trữ một giá trị với một số khóa và trích xuất giá trị được đưa ra khóa.

Trong một từ điển, bạn không thể sử dụng làm các giá trị khóa không thể băm, nghĩa là các giá trị chứa danh sách, từ điển hoặc các loại có thể thay đổi khác.

Bộ

Một bộ là một bộ sưu tập không có thứ tự của các đối tượng băm khác biệt. Một tập hợp thường được sử dụng để bao gồm thử nghiệm thành viên, loại bỏ các bản sao khỏi một chuỗi và các hoạt động toán học như giao lộ, liên kết, khác biệt và sự khác biệt đối xứng.

Đã trả lời ngày 11 tháng 7 năm 2019 lúc 21:18Jul 11, 2019 at 21:18

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

lmiguelvargasflmiguelvargasflmiguelvargasf

57.4K43 Huy hiệu vàng213 Huy hiệu bạc216 Huy hiệu đồng43 gold badges213 silver badges216 bronze badges

Đối với C ++, tôi luôn có biểu đồ dòng chảy này trong tâm trí: tôi sử dụng một thùng chứa STL cụ thể ?, Vì vậy, tôi đã tò mò nếu có gì đó tương tự cho Python3, nhưng tôi không gặp may mắn.

Những gì bạn cần ghi nhớ cho Python là: Không có tiêu chuẩn Python nào như đối với C ++. Do đó, có thể có sự khác biệt lớn đối với các phiên dịch viên Python khác nhau (ví dụ: Cpython, Pypy). Biểu đồ dòng sau đây là cho CPython.

Ngoài ra, tôi không tìm thấy cách nào tốt để kết hợp các cấu trúc dữ liệu sau vào sơ đồ: set0, set1, set2, set3, set4, set5 và set6.

  • set7 và set8 có sẵn thông qua mô -đun
    dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    7.
  • dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    00 có sẵn từ mô -đun
    dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    00
  • dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    02,
    dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    03 và
    dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    04 có sẵn thông qua mô -đun
    dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    05 được thiết kế để truy cập đồng thời (chủ đề). .
  • dict, set,
    dictionary_of_transport = {
        "cars": 8,
        "boats": 2,
        "planes": 0
    }
    print("I have the following amount of planes:")
    print(dictionary_of_transport["planes"])
    #Output: 0
    
    10 và list được xây dựng tất nhiên

Đối với bất cứ ai, tôi sẽ rất biết ơn nếu bạn có thể cải thiện câu trả lời này và cung cấp một sơ đồ tốt hơn trong mọi khía cạnh. Hãy thoải mái và được chào đón.

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

PS: Sơ đồ đã được thực hiện với Yed. Tệp đồ thị ở đây

1

Mặc dù điều này không bao gồm sets, nhưng đó là một lời giải thích tốt về dictlists:

Danh sách là những gì họ dường như - một danh sách các giá trị. Mỗi một trong số chúng được đánh số, bắt đầu từ 0 - cái đầu tiên được đánh số bằng 0, 1 thứ hai, thứ ba 2, v.v. Bạn có thể xóa các giá trị khỏi danh sách và thêm các giá trị mới vào cuối. Ví dụ: Tên của nhiều con mèo của bạn.

Từ điển tương tự như những gì tên của họ gợi ý - một từ điển. Trong một từ điển, bạn có một 'chỉ mục' của các từ và đối với mỗi người trong số họ là một định nghĩa. Trong Python, từ này được gọi là 'khóa' và định nghĩa là 'giá trị'. Các giá trị trong từ điển không được đánh số - tương tự như những gì tên của chúng gợi ý - một từ điển. Trong một từ điển, bạn có một 'chỉ mục' của các từ và đối với mỗi người trong số họ là một định nghĩa. Các giá trị trong từ điển không được đánh số - chúng cũng không theo bất kỳ thứ tự cụ thể nào - khóa cũng làm điều tương tự. Bạn có thể thêm, xóa và sửa đổi các giá trị trong từ điển. Ví dụ: Sách điện thoại.

http://www.sthurlow.com/python/lesson06/

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

Công ty JSC

63.4K13 Huy hiệu vàng150 Huy hiệu bạc193 Huy hiệu Đồng13 gold badges150 silver badges193 bronze badges

Đã trả lời ngày 22 tháng 10 năm 2012 lúc 0:11Oct 22, 2012 at 0:11

0

Kết hợp với danh sách, dicts và bộ, cũng có một đối tượng Python thú vị khác, đặt hàng.

Từ điển được đặt hàng giống như từ điển thông thường nhưng họ nhớ thứ tự mà các mặt hàng được chèn. Khi lặp lại từ một từ điển được đặt hàng, các mục được trả lại theo thứ tự các khóa của chúng được thêm vào lần đầu tiên.

Đặt hàng có thể hữu ích khi bạn cần lưu giữ thứ tự của các khóa, ví dụ như làm việc với các tài liệu: thông thường cần phải biểu diễn vector của tất cả các thuật ngữ trong một tài liệu. Vì vậy, sử dụng OrderedDicts, bạn có thể xác minh hiệu quả nếu một thuật ngữ đã được đọc trước đó, thêm các điều khoản, trích xuất các điều khoản và sau tất cả các thao tác, bạn có thể trích xuất biểu diễn vectơ được đặt hàng của chúng.

Đã trả lời ngày 8 tháng 5 năm 2018 lúc 15:25May 8, 2018 at 15:25

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

Federico Cacciafederico CacciaFederico Caccia

1.7591 Huy hiệu vàng12 Huy hiệu bạc31 Huy hiệu đồng1 gold badge12 silver badges31 bronze badges

Có thể lạc đề về mặt câu hỏi op đã hỏi-

  1. Danh sách: Một bộ sưu tập không thể vượt qua của các đối tượng được đặt hàng, có thể thay đổi.
  2. Tuple: Một bộ sưu tập có thể băm gồm các đối tượng được đặt hàng, bất biến, như danh sách.
  3. Đặt: Một bộ sưu tập không thể không có được các đối tượng không có thứ tự, có thể thay đổi và khác biệt.
  4. Frozenset: Một bộ sưu tập băm gồm các đối tượng không có thứ tự, bất biến và khác biệt.
  5. Từ điển: Một bộ sưu tập không thể đặt hàng, không có thứ tự các đối tượng có thể thay đổi mà bản đồ có thể đánh giá các giá trị cho các giá trị tùy ý.

Để so sánh chúng một cách trực quan, trong nháy mắt, hãy xem hình ảnh-

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

Đã trả lời ngày 28 tháng 4 năm 2021 lúc 6:02Apr 28, 2021 at 6:02

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

SislamsislamSIslam

5.0801 Huy hiệu vàng24 Huy hiệu bạc36 Huy hiệu đồng1 gold badge24 silver badges36 bronze badges

Danh sách là những gì họ dường như - một danh sách các giá trị. Mỗi một trong số chúng được đánh số, bắt đầu từ 0 - cái đầu tiên được đánh số bằng 0, 1 thứ hai, thứ ba 2, v.v. Bạn có thể xóa các giá trị khỏi danh sách và thêm các giá trị mới vào cuối. Ví dụ: Tên của nhiều con mèo của bạn. are what they seem - a list of values. Each one of them is numbered, starting from zero - the first one is numbered zero, the second 1, the third 2, etc. You can remove values from the list, and add new values to the end. Example: Your many cats' names.

Tuples giống như danh sách, nhưng bạn không thể thay đổi giá trị của chúng. Các giá trị mà bạn đưa ra trước tiên, là các giá trị mà bạn bị mắc kẹt trong phần còn lại của chương trình. Một lần nữa, mỗi giá trị được đánh số bắt đầu từ 0, để dễ dàng tham khảo. Ví dụ: Tên của các tháng trong năm. are just like lists, but you can't change their values. The values that you give it first up, are the values that you are stuck with for the rest of the program. Again, each value is numbered starting from zero, for easy reference. Example: the names of the months of the year.

Từ điển tương tự như những gì tên của họ gợi ý - một từ điển. Trong một từ điển, bạn có một 'chỉ mục' của các từ và đối với mỗi người trong số họ là một định nghĩa. Trong Python, từ này được gọi là 'khóa' và định nghĩa là 'giá trị'. Các giá trị trong từ điển không được đánh số - tương tự như những gì tên của chúng gợi ý - một từ điển. Trong một từ điển, bạn có một 'chỉ mục' của các từ và đối với mỗi người trong số họ là một định nghĩa. Trong Python, từ này được gọi là 'khóa' và định nghĩa là 'giá trị'. Các giá trị trong từ điển không được đánh số - chúng cũng không theo bất kỳ thứ tự cụ thể nào - khóa cũng làm điều tương tự. Bạn có thể thêm, xóa và sửa đổi các giá trị trong từ điển. Ví dụ: Sách điện thoại. are similar to what their name suggests - a dictionary. In a dictionary, you have an 'index' of words, and for each of them a definition. In python, the word is called a 'key', and the definition a 'value'. The values in a dictionary aren't numbered - tare similar to what their name suggests - a dictionary. In a dictionary, you have an 'index' of words, and for each of them a definition. In python, the word is called a 'key', and the definition a 'value'. The values in a dictionary aren't numbered - they aren't in any specific order, either - the key does the same thing. You can add, remove, and modify the values in dictionaries. Example: telephone book.

Đã trả lời ngày 18 tháng 6 năm 2017 lúc 8:17Jun 18, 2017 at 8:17

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

Nitish Kumar Palnitish Kumar PalNitish Kumar Pal

2.5803 Huy hiệu vàng16 Huy hiệu bạc23 Huy hiệu đồng3 gold badges16 silver badges23 bronze badges

Khi sử dụng chúng, tôi tạo ra một bảng cheat toàn diện cho các phương thức của họ để tham khảo của bạn:

class ContainerMethods:
    def __init__(self):
        self.list_methods_11 = {
                    'Add':{'append','extend','insert'},
                    'Subtract':{'pop','remove'},
                    'Sort':{'reverse', 'sort'},
                    'Search':{'count', 'index'},
                    'Entire':{'clear','copy'},
                            }
        self.tuple_methods_2 = {'Search':'count','index'}

        self.dict_methods_11 = {
                    'Views':{'keys', 'values', 'items'},
                    'Add':{'update'},
                    'Subtract':{'pop', 'popitem',},
                    'Extract':{'get','setdefault',},
                    'Entire':{ 'clear', 'copy','fromkeys'},
                            }
        self.set_methods_17 ={
                    'Add':{['add', 'update'],['difference_update','symmetric_difference_update','intersection_update']},
                    'Subtract':{'pop', 'remove','discard'},
                    'Relation':{'isdisjoint', 'issubset', 'issuperset'},
                    'operation':{'union' 'intersection','difference', 'symmetric_difference'}
                    'Entire':{'clear', 'copy'}}

Đã trả lời ngày 6 tháng 12 năm 2017 lúc 11:06Dec 6, 2017 at 11:06

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

AbstprocdoabstprocdoAbstProcDo

Phù hiệu vàng 18,9K1574 Huy hiệu bạc124 Huy hiệu đồng15 gold badges74 silver badges124 bronze badges

Từ điển: Từ điển Python được sử dụng giống như bảng băm có khóa là chỉ mục và đối tượng là giá trị.

Danh sách: Danh sách được sử dụng để giữ các đối tượng trong một mảng được lập chỉ mục bởi vị trí của đối tượng đó trong mảng.

Đặt: Một tập hợp là một bộ sưu tập với các chức năng có thể cho biết một đối tượng có mặt hay không có trong tập hợp.

Đã trả lời ngày 20 tháng 1 năm 2020 lúc 5:48Jan 20, 2020 at 5:48

Srinivas psrinivas pSrinivas P

1021 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

Từ điển: Khi bạn muốn tìm kiếm thứ gì đó bằng cách sử dụng một cái gì đó khác ngoài các chỉ mục. Thí dụ:

dictionary_of_transport = {
    "cars": 8,
    "boats": 2,
    "planes": 0
}
print("I have the following amount of planes:")
print(dictionary_of_transport["planes"])
#Output: 0

Danh sách và bộ: Khi bạn muốn thêm và xóa các giá trị. Danh sách: Để tra cứu các giá trị bằng các bộ chỉ mục: Để có các giá trị được lưu trữ, nhưng bạn không thể truy cập chúng bằng bất cứ điều gì.
Lists: To look up values using indexes
Sets: To have values stored, but you cannot access them using anything.

Đã trả lời ngày 2 tháng 3 lúc 8:01Mar 2 at 8:01

Hướng dẫn when should i use a dictionary in python - khi nào tôi nên sử dụng từ điển trong python

norway-yvnorway-yvnorway-yv

2222 Huy hiệu bạc12 Huy hiệu Đồng2 silver badges12 bronze badges

Ưu điểm của việc sử dụng một python từ điển là gì?

Từ điển Python giúp đọc và thay đổi dữ liệu dễ dàng hơn, do đó hiển thị nó có khả năng hành động hơn cho mô hình dự đoán. Từ điển Python là một bộ sưu tập các giá trị dữ liệu không được đặt hàng. Không giống như các loại dữ liệu khác chỉ chứa một giá trị là một phần tử, từ điển Python giữ một cặp khóa: giá trị.makes it easier to read and change data, thereby rendering it more actionable for predictive modeling. A Python dictionary is an unordered collection of data values. Unlike other data types that hold only one value as an element, a Python dictionary holds a key: value pair.

Một lợi thế lớn của việc sử dụng từ điển so với danh sách là gì?

Từ điển có thể thay đổi, có nghĩa là chúng có thể được sửa đổi bằng cách thêm, loại bỏ và thay thế các phần tử trong một từ điển, tương tự như danh sách.

Tôi nên sử dụng một tuple hay từ điển trong Python?

Từ điển được sử dụng khi bạn phải đặt các bộ dữ liệu trong đó dữ liệu của bộ đầu tiên tương ứng với dữ liệu của tập hợp khác.Và vị trí của dữ liệu không chỉ quan trọng mối quan hệ của hai tập hợp các vấn đề.Một tuple được sử dụng khi vị trí của dữ liệu rất quan trọng và bạn không muốn thay đổi vị trí trong suốt.. And the position of the data doesn't matter only the relation of the two sets matters. A tuple is used when position of the data is very important and you don't want to alter the position throughout.

Tôi có nên sử dụng Dict hay {}?

Với CPython 2.7, sử dụng Dict () để tạo từ điển mất tới 6 lần và liên quan đến các hoạt động phân bổ bộ nhớ nhiều hơn so với cú pháp theo nghĩa đen.Sử dụng {} để tạo từ điển, đặc biệt nếu bạn đang đông đảo chúng, trừ khi cú pháp theo nghĩa đen không hoạt động cho trường hợp của bạn.Use {} to create dictionaries, especially if you are pre-populating them, unless the literal syntax does not work for your case.