Hướng dẫn what is the space complexity of dictionary python? - độ phức tạp không gian của từ điển python là gì?

Đây có lẽ là một khái niệm khá cơ bản nhưng tôi gặp khó khăn trong việc tìm hiểu sự phức tạp về không gian cho các danh sách và từ điển. Ví dụ: bên trong tập lệnh Python, chúng tôi khai báo và gán các biến sau:

# Is the space complexity of this object how many keys exist within the dictionary? 
new_dict = { 'a': 20, 'b': 30, 'c': 40, 'd': 50 } # O(4)?
copy_of_new_dict = dict(new_dict) # Also O(4)?


# Is the space complexity of this list also O(4)?
new_list = ['a', 'b', 'c', 'd']

Hoặc thực hiện các chức năng sau:

def generateDict(n):
  new_dict = {}
  for i in range(n):
    new_dict[i] = i * i
  return new_dict # Is this dictionary taking up O(n) space?

def generateList(n):
  new_list = []
  for i in range(n):
    new_list.append(i)
  return new_list # Is this list taking up O(n) space?

S1> = S2

Nhạc pop

s.pop ()May 13, 2020 at 13:46

Hướng dẫn what is the space complexity of dictionary python? - độ phức tạp không gian của từ điển python là gì?

liên hiệp

S1 | S2

O (Len (S1)+Len (S2))May 13, 2020 at 13:57

Hướng dẫn what is the space complexity of dictionary python? - độ phức tạp không gian của từ điển python là gì?

Sự khác biệt đối xứngCaleth

S1^S22 gold badges22 silver badges32 bronze badges

Làm thế nào là một từ điển O 1?

O (1) có nghĩa là hằng số mà không liên quan đến kích thước của dữ liệu. Hàm băm mất một khoảng thời gian nhất định, nhưng lượng thời gian đó không quy mô với kích thước của bộ sưu tập. Nhưng có thể viết một hàm băm phụ thuộc vào kích thước của bộ sưu tập.

Có giới hạn kích thước trên từ điển Python không?

  • Về nguyên tắc, không có giới hạn kích thước đối với từ điển trong Python, ngoại trừ khả năng của bộ nhớ có sẵn của bạn (không gian hoán đổi RAM +).
  • Làm thế nào để bạn tính toán độ phức tạp không gian?
  • Làm thế nào là một từ điển O 1?

    O (1) có nghĩa là hằng số mà không liên quan đến kích thước của dữ liệu. Hàm băm mất một khoảng thời gian nhất định, nhưng lượng thời gian đó không quy mô với kích thước của bộ sưu tập. Nhưng có thể viết một hàm băm phụ thuộc vào kích thước của bộ sưu tập.

    Có giới hạn kích thước trên từ điển Python không?

    Về nguyên tắc, không có giới hạn kích thước đối với từ điển trong Python, ngoại trừ khả năng của bộ nhớ có sẵn của bạn (không gian hoán đổi RAM +).

    Prerequisite: List, Dictionaries, Sets 

    Làm thế nào để bạn tính toán độ phức tạp không gian? 

    Vì vậy, chúng ta có thể nói rằng độ phức tạp không gian là sự kết hợp hoặc tổng hợp không gian phụ trợ và không gian được sử dụng bởi các giá trị đầu vào ..
     

    if key in d:

    Độ phức tạp không gian = không gian phụ trợ + không gian được sử dụng cho các giá trị đầu vào ..

    if dict.get(key)

    Do đó, tổng độ phức tạp không gian = 4*4 + 4 = 20 byte ..

    Xem thảo luận  

    1. Cải thiện bài viết
    2. Lưu bài viết

    Đọc

    Bàn luận

    Các cấu trúc dữ liệu tích hợp Python như danh sách, bộ, từ điển cung cấp một số lượng lớn các hoạt động giúp việc viết mã ngắn gọn dễ dàng hơn nhưng không nhận thức được sự phức tạp của chúng có thể dẫn đến hành vi chậm bất ngờ của mã Python của bạn. & NBSP;Ví dụ: & nbsp;Một thao tác tra cứu từ điển đơn giản có thể được thực hiện bởi: & nbsp; & nbsp;
     hoặcĐầu tiên có độ phức tạp về thời gian của O (n) đối với python2, o (1) đối với python3 và cái sau có O (1) có thể tạo ra nhiều khác biệt trong các câu lệnh lồng nhau. & NBSP;
    Điểm quan trọng: & nbsp; & nbsp;l.append(item)O(1)O(1)
    Danh sách tương tự như các mảng có khả năng bổ sung và xóa hai chiều.Từ điển và thiết lập sử dụng các bảng băm để chèn/xóa và tra cứu các hoạt động.O (Len (S2))O (Len (S2))
    Nhạc pops.pop ()TRÊN)TRÊN)
    O (1)liên hiệpTRÊN)TRÊN)
    S1 | S2O (Len (S1)+Len (S2))TRÊN)TRÊN)
    -Sự khác biệt đối xứngTRÊN)TRÊN)
    S1^S2Len (S1)TRÊN)TRÊN)
    O (Len (S1)*Len (S2))Để biết thêm thông tin, hãy tham khảo hoạt động nội bộ của Set trong Python & NBSP;O (Len (S2))O (Len (S2))
    Lặp đi lặp lạiNhạc popTRÊN)TRÊN)
    s.pop ()O (1)O (Len (S2))O (Len (S2))
    Nhạc pops.pop ()O (1)O (1)
    liên hiệpS1 | S2TRÊN)TRÊN)
    O (Len (S1)+Len (S2))-O (Len (S2))O (Len (S2))
    Nhạc pops.pop ()TRÊN)TRÊN)
    O (1)liên hiệpTRÊN)TRÊN)
    S1 | S2O (Len (S1)+Len (S2))TRÊN)TRÊN)
    -Sự khác biệt đối xứngS1^S2S1^S2
    Len (S1)O (Len (S1)*Len (S2))Để biết thêm thông tin, hãy tham khảo hoạt động nội bộ của Set trong Python & NBSP;Để biết thêm thông tin, hãy tham khảo hoạt động nội bộ của Set trong Python & NBSP;
    Lưu ý: Các bộ đông lạnh có các hoạt động tương tự (không có thể sửa chữa) và độ phức tạp. & NBSP;Sự phức tạp không gian của từ điển là gì?O (Len (S2))O (Len (S2))

    Nhạc pop

    s.pop ()Tuples have the same operations (non-mutable) and complexities. 

    O (1)

    Các cấu trúc dữ liệu tích hợp Python như danh sách, bộ, từ điển cung cấp một số lượng lớn các hoạt động giúp việc viết mã ngắn gọn dễ dàng hơn nhưng không nhận thức được sự phức tạp của chúng có thể dẫn đến hành vi chậm bất ngờ của mã Python của bạn. & NBSP;Ví dụ: & nbsp;Một thao tác tra cứu từ điển đơn giản có thể được thực hiện bởi: & nbsp; & nbsp;
     hoặcĐầu tiên có độ phức tạp về thời gian của O (n) đối với python2, o (1) đối với python3 và cái sau có O (1) có thể tạo ra nhiều khác biệt trong các câu lệnh lồng nhau. & NBSP;
    Điểm quan trọng: & nbsp; & nbsp;d.clear()O(1)O(1)
    Danh sách tương tự như các mảng có khả năng bổ sung và xóa hai chiều.Từ điển và thiết lập sử dụng các bảng băm để chèn/xóa và tra cứu các hoạt động.Bảng gian lận này có thể được đề cập để chọn các hoạt động hiệu quả đối với thời gian. & NBSP;Bảng gian lận này có thể được đề cập để chọn các hoạt động hiệu quả đối với thời gian. & NBSP;
    S1 | S2O (Len (S1)+Len (S2))O (Len (S2))TRÊN)
    Nhạc pops.pop ()O (Len (S2))TRÊN)
    O (1)liên hiệpTRÊN)TRÊN)
    s.pop ()O (1)O (Len (S2))O (Len (S2))
    Là supersetliên hiệpO (Len (S2))TRÊN)
    S1 | S2O (Len (S1)+Len (S2))O (Len (S2))O (Len (S2))
    -Sự khác biệt đối xứngO (Len (S2))O (Len (S2))
    S1^S2Len (S1)O (Len (S2))O (Len (S2))
    O (Len (S1)*Len (S2))Để biết thêm thông tin, hãy tham khảo hoạt động nội bộ của Set trong Python & NBSP;Lưu ý: Các bộ đông lạnh có các hoạt động tương tự (không có thể sửa chữa) và độ phức tạp. & NBSP;Lưu ý: Các bộ đông lạnh có các hoạt động tương tự (không có thể sửa chữa) và độ phức tạp. & NBSP;

    Sự phức tạp không gian của từ điển là gì?Defaultdict has operations same as dict with same time complexity as it inherits from dict.  

    Từ điển sử dụng cấu trúc dữ liệu mảng kết hợp có độ phức tạp không gian O (n).

    Các cấu trúc dữ liệu tích hợp Python như danh sách, bộ, từ điển cung cấp một số lượng lớn các hoạt động giúp việc viết mã ngắn gọn dễ dàng hơn nhưng không nhận thức được sự phức tạp của chúng có thể dẫn đến hành vi chậm bất ngờ của mã Python của bạn. & NBSP;Ví dụ: & nbsp;Một thao tác tra cứu từ điển đơn giản có thể được thực hiện bởi: & nbsp; & nbsp;
     hoặcĐầu tiên có độ phức tạp về thời gian của O (n) đối với python2, o (1) đối với python3 và cái sau có O (1) có thể tạo ra nhiều khác biệt trong các câu lệnh lồng nhau. & NBSP;
    Điểm quan trọng: & nbsp; & nbsp;s.add(item)O(1)O(N)
    Danh sách tương tự như các mảng có khả năng bổ sung và xóa hai chiều.Từ điển và thiết lập sử dụng các bảng băm để chèn/xóa và tra cứu các hoạt động.O (Len (S2))O (Len (S2))
    O (1)liên hiệpTRÊN)TRÊN)
    Nhạc pops.pop ()O (Len (S2))TRÊN)
    O (1)liên hiệpS1 | S2S1 | S2
    O (Len (S1)+Len (S2))-O (Len (S2))TRÊN)
    Sự khác biệt đối xứngS1^S2O (Len (S1))O (Len (S1))
    Len (S1)O (Len (S1)*Len (S2))O (Len (S2))S1> = S2
    S1^S2Len (S1)O (Min (Len (S1), Len (S2)))O (Min (Len (S1), Len (S2)))
    O (Len (S1)*Len (S2))Để biết thêm thông tin, hãy tham khảo hoạt động nội bộ của Set trong Python & NBSP;O (Min (Len (S1), Len (S2)))O (Min (Len (S1), Len (S2)))
    Lặp đi lặp lạiĐối với mục trong s:TRÊN)TRÊN)
    Là tập hợp cons1O (Len (S1))O (Len (S1))
    Là supersetS1> = S2O (Len (S2))O (Len (S1))
    Là supersetS1> = S2O (Len (S2))TRÊN)
    Là tập hợp conO (Len (S1))Là supersetS1> = S2
    O (Len (S2))Nhạc pops.pop ()O (1)

    liên hiệp

    S1 | S2Frozen sets have the same operations (non-mutable) and complexities. 

    Sự phức tạp không gian của từ điển là gì?

    Từ điển sử dụng cấu trúc dữ liệu mảng kết hợp có độ phức tạp không gian O (n).O(N) space complexity.

    Làm thế nào là một từ điển O 1?

    O (1) có nghĩa là hằng số mà không liên quan đến kích thước của dữ liệu.Hàm băm mất một khoảng thời gian nhất định, nhưng lượng thời gian đó không quy mô với kích thước của bộ sưu tập.Nhưng có thể viết một hàm băm phụ thuộc vào kích thước của bộ sưu tập.constant without regard to the size of the data. The hash function takes a certain amount of time, but that amount of time doesn't scale with the size of the collection. But it is possible to write a hash function that is dependent on the size of the collection.

    Có giới hạn kích thước trên từ điển Python không?

    Về nguyên tắc, không có giới hạn kích thước đối với từ điển trong Python, ngoại trừ khả năng của bộ nhớ có sẵn của bạn (không gian hoán đổi RAM +).no size limitation to a dictionary in Python, except the capacity of your available memory (RAM + Swap space).

    Làm thế nào để bạn tính toán độ phức tạp không gian?

    Vì vậy, chúng ta có thể nói rằng độ phức tạp không gian là sự kết hợp hoặc tổng hợp không gian phụ trợ và không gian được sử dụng bởi các giá trị đầu vào ...
    Độ phức tạp không gian = không gian phụ trợ + không gian được sử dụng cho các giá trị đầu vào ..
    Do đó, tổng độ phức tạp không gian = 4*4 + 4 = 20 byte ..