Tôi tò mò bởi sự biểu hiện python sau:`**` có nghĩa gì trong biểu thức `dict (d1, ** d2)`?
d3 = dict(d1, **d2)
Nhiệm vụ là kết hợp 2 từ điển thành một thứ ba, và biểu thức trên hoàn thành nhiệm vụ tốt. Tôi quan tâm đến các nhà điều hành ** và chính xác những gì nó làm cho biểu thức. Tôi nghĩ rằng ** là nhà điều hành điện và chưa thấy nó được sử dụng trong ngữ cảnh ở trên.
Đoạn đầy đủ của mã là thế này:
>>> d1 = {'a': 1, 'b': 2}
>>> d2 = {'c': 3, 'd': 4}
>>> d3 = dict(d1, **d2)
>>> print d3
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
Cần lưu ý rằng GvR cho rằng biểu thức này là [đáng khinh] (http://mail.python.org/pipermail/python-dev/2010-April/099459.html) – elhefe
Điều này chỉ hoạt động nếu các phím trong ' d2' là các chuỗi, ít nhất là bằng Python 3. – nobar
Ồ, tuyệt, tôi không nhận ra nó sẽ hoạt động ở tất cả trong Python 2. Tôi cho rằng đó là lợi thế của 'dict (d1, ** d2)' trên 'dict (** d1, ** d2) 'hoặc' {d1, ** d2} 'hoặc' {** d1, ** d2} '—nó hoạt động trong Python 2. Tôi nghĩ rằng cú pháp cuối cùng là cú pháp ưa thích trong Python 3 bởi vì nó ngắn gọn và nhất quán. Nhưng thật tuyệt khi biết có một cách để làm điều đó trong Python 2, ít nhất là với các phím chuỗi, ngay cả khi nó trông hơi khó hiểu. –