Hướng dẫn add dict to dict python - thêm dict vào dict python

Tôi có hai từ điển hiện có và tôi muốn 'nối' một trong số chúng vào cái kia. Tôi có nghĩa là chìa khóa, các giá trị của từ điển khác nên được thực hiện vào từ điển đầu tiên. Ví dụ:

orig = {
   'A': 1,
   'B': 2,
   'C': 3,
}

extra = {
   'D': 4,
   'E': 5,
}

dest = # Something here involving orig and extra

print dest
{
   'A': 1,
   'B': 2,
   'C': 3,
   'D': 4,
   'E': 5
}

Tôi nghĩ rằng tất cả điều này có thể đạt được thông qua một vòng lặp

orig.update(extra)
3 (có thể?), Nhưng có một số phương pháp từ điển hoặc bất kỳ mô -đun nào khác tiết kiệm công việc này cho tôi? Các từ điển thực tế tôi đang sử dụng thực sự rất lớn ...

Hướng dẫn add dict to dict python - thêm dict vào dict python

hỏi ngày 19 tháng 1 năm 2012 lúc 17:55Jan 19, 2012 at 17:55

Javier Novoa C.Javier Novoa C.Javier Novoa C.

10,5K13 Huy hiệu vàng51 Huy hiệu bạc75 Huy hiệu Đồng13 gold badges51 silver badges75 bronze badges

1

Bạn có thể làm

orig.update(extra)

Hoặc, nếu bạn không muốn

orig.update(extra)
4 được sửa đổi, hãy tạo một bản sao trước:

dest = dict(orig)  # or orig.copy()
dest.update(extra)

Lưu ý rằng nếu thêm và orig có các khóa chồng chéo, giá trị cuối cùng sẽ được lấy từ thêm. Ví dụ,

>>> d1 = {1: 1, 2: 2}
>>> d2 = {2: 'ha!', 3: 3}
>>> d1.update(d2)
>>> d1
{1: 1, 2: 'ha!', 3: 3}

Đã trả lời ngày 19 tháng 1 năm 2012 lúc 17:58Jan 19, 2012 at 17:58

8

Có hai cách để thêm một từ điển vào một từ khác:

Cập nhật (sửa đổi

orig.update(extra)
4 tại chỗ) (modifies
orig.update(extra)
4 in place)

orig.update(extra)    # Python 2.7+
orig |= extra         # Python 3.9+

Hợp nhất (tạo ra một từ điển mới) (creates a new dictionary)

# Python 2.7+
dest = collections.ChainMap(orig, extra)
dest = {k: v for d in (orig, extra) for (k, v) in d.items()}

# Python 3
dest = {**orig, **extra}          
dest = {**orig, 'D': 4, 'E': 5}

# Python 3.9+ 
dest = orig | extra

Hãy cẩn thận

Lưu ý rằng các hoạt động này là không hoạt động. Trong mọi trường hợp, sau này là người chiến thắng. Ví dụ.

orig  = {'A': 1, 'B': 2}
extra = {'A': 3, 'C': 3}

dest = orig | extra
# dest = {'A': 3, 'B': 2, 'C': 3}

dest = extra | orig
# dest = {'A': 1, 'B': 2, 'C': 3}

Cũng cần lưu ý rằng chỉ từ Python 3.7 (và CPython 3.6)

orig.update(extra)
6 được đặt hàng. Vì vậy, trong các phiên bản trước, thứ tự của các mục trong từ điển có thể khác nhau.

Đã trả lời ngày 4 tháng 7 năm 2016 lúc 2:13Jul 4, 2016 at 2:13

Hướng dẫn add dict to dict python - thêm dict vào dict python

Nuno Andrénuno AndréNuno André

3.9701 Huy hiệu vàng29 Huy hiệu bạc42 Huy hiệu đồng1 gold badge29 silver badges42 bronze badges

2

orig.update(extra)
7 Có vẻ như nó sẽ làm những gì bạn muốn ...

>> orig.update(extra)
>>> orig
{'A': 1, 'C': 3, 'B': 2, 'E': 5, 'D': 4}
>>> 

Mặc dù vậy, có lẽ, bạn không muốn cập nhật từ điển ban đầu của mình, nhưng làm việc trên một bản sao:

>>> dest = orig.copy()
>>> dest.update(extra)
>>> orig
{'A': 1, 'C': 3, 'B': 2}
>>> dest
{'A': 1, 'C': 3, 'B': 2, 'E': 5, 'D': 4}

Đã trả lời ngày 19 tháng 1 năm 2012 lúc 17:58Jan 19, 2012 at 17:58

Hướng dẫn add dict to dict python - thêm dict vào dict python

Có hai cách để thêm một từ điển vào một từ khác:johnsyweb

Cập nhật (sửa đổi

orig.update(extra)
4 tại chỗ)23 gold badges180 silver badges244 bronze badges

Hợp nhất (tạo ra một từ điển mới)

from itertools import chain
dest = dict(chain(orig.items(), extra.items()))

Hãy cẩn thận

orig.update(extra)
0

Lưu ý rằng các hoạt động này là không hoạt động. Trong mọi trường hợp, sau này là người chiến thắng. Ví dụ.

Cũng cần lưu ý rằng chỉ từ Python 3.7 (và CPython 3.6)

orig.update(extra)
6 được đặt hàng. Vì vậy, trong các phiên bản trước, thứ tự của các mục trong từ điển có thể khác nhau.

orig.update(extra)
1

Đã trả lời ngày 4 tháng 7 năm 2016 lúc 2:13Jan 19, 2012 at 18:13

Nuno Andrénuno AndréAndrew Clark

3.9701 Huy hiệu vàng29 Huy hiệu bạc42 Huy hiệu đồng33 gold badges268 silver badges298 bronze badges

1

orig.update(extra)
7 Có vẻ như nó sẽ làm những gì bạn muốn ...

orig.update(extra)
2

Mặc dù vậy, có lẽ, bạn không muốn cập nhật từ điển ban đầu của mình, nhưng làm việc trên một bản sao:

Johnsywebjohnsyweb

Huy hiệu vàng 133K23May 18, 2017 at 5:30

Hướng dẫn add dict to dict python - thêm dict vào dict python

Giả sử rằng bạn không muốn thay đổi

orig.update(extra)
4, bạn có thể thực hiện một bản sao và cập nhật như các câu trả lời khác hoặc bạn có thể tạo một từ điển mới trong một bước bằng cách chuyển tất cả các mục từ cả hai từ điển vào trình xây dựng Dict:jkdev

Hoặc không có itertools:15 gold badges55 silver badges77 bronze badges

1

Lưu ý rằng bạn chỉ cần chuyển kết quả của

orig.update(extra)
9 vào
dest = dict(orig)  # or orig.copy()
dest.update(extra)
0 trên Python 3, trên 2.x
dest = dict(orig)  # or orig.copy()
dest.update(extra)
1 đã trả lại một danh sách để bạn có thể làm
dest = dict(orig)  # or orig.copy()
dest.update(extra)
2.

Như một trường hợp sử dụng tổng quát hơn, giả sử bạn có một danh sách các dicts lớn hơn mà bạn muốn kết hợp thành một dict duy nhất, bạn có thể làm điều gì đó như thế này: Update the dictionary with the key/value pairs from other, overwriting existing keys. Return None.

Đã trả lời ngày 19 tháng 1 năm 2012 lúc 18:13

Andrew Clarkandrew Clark

196K33 Huy hiệu vàng268 Huy hiệu bạc298 Huy hiệu Đồng

Một lớp ba để kết hợp hoặc hợp nhất hai từ điển:69 gold badges491 silver badges638 bronze badges

Đã trả lời ngày 19 tháng 1 năm 2012 lúc 17:58Jan 19, 2012 at 17:58

Có hai cách để thêm một từ điển vào một từ khác:sleeplessnerd

Cập nhật (sửa đổi

orig.update(extra)
4 tại chỗ)1 gold badge24 silver badges29 bronze badges

Chúng ta có thể thêm hai từ điển trong Python không?

Python 3.9 đã giới thiệu toán tử hợp nhất (|) trong lớp Dict.Sử dụng toán tử hợp nhất, chúng ta có thể kết hợp từ điển trong một dòng mã duy nhất.Chúng ta cũng có thể hợp nhất các từ điển tại chỗ bằng cách sử dụng toán tử cập nhật (| =).. Using the merge operator, we can combine dictionaries in a single line of code. We can also merge the dictionaries in-place by using the update operator (|=).

Dict có thể chứa một dict?

Một biến từ điển có thể lưu trữ một từ điển khác trong từ điển lồng nhau.Ví dụ sau đây cho thấy cách từ điển lồng nhau có thể được khai báo và truy cập bằng Python.Ở đây, 'các khóa học' là một từ điển lồng nhau có chứa từ điển khác của ba yếu tố trong mỗi khóa.. The following example shows how nested dictionary can be declared and accessed using python. Here, 'courses' is a nested dictionary that contains other dictionary of three elements in each key.

Làm thế nào bạn có thể thêm khóa

Dưới đây là hai cách tiếp cận mà chúng ta có thể sử dụng ...
Gán một khóa mới làm chỉ số.Chúng tôi thêm một phần tử mới vào từ điển bằng cách sử dụng khóa mới làm chỉ số và gán cho nó một giá trị.....
Sử dụng phương thức Update ().....
Bằng cách hợp nhất hai từ điển ..

Chúng ta có thể thêm dict để đặt trong Python không?

Chúng ta có thể tạo một từ điển của các bộ bằng cách truyền các bộ làm giá trị cho các khóa..