Với việc phát hành Python 3.5 , việc thao tác các danh sách, bộ dữ liệu, bộ và ký tự đã trở thành golfier.
Biến một iterable thành một tập hợp / danh sách
So sánh các cặp:
set(T)
{*T}
list(T)
[*T]
tuple(T)
(*T,)
Ngắn hơn nhiều! Tuy nhiên, lưu ý rằng nếu bạn chỉ muốn chuyển đổi một cái gì đó thành một danh sách và gán nó vào một biến, thì việc giải nén lặp lại mở rộng bình thường sẽ ngắn hơn:
L=[*T]
*L,=T
Một cú pháp tương tự hoạt động cho các bộ dữ liệu:
T=*L,
giống như giải nén lặp lại mở rộng, nhưng với dấu hoa thị và dấu phẩy ở phía bên kia.
Tham gia danh sách / bộ dữ liệu
Giải nén ngắn hơn một chút so với ghép nếu bạn cần nối thêm một danh sách / bộ dữ liệu vào cả hai bên:
[1]+T+[2]
[1,*T,2]
(1,)+T+(2,)
(1,*T,2)
In nội dung của nhiều danh sách
Điều này không giới hạn print
, nhưng nó chắc chắn là nơi mà hầu hết số dặm sẽ đến. PEP448 hiện cho phép nhiều lần giải nén, như vậy:
>>> T = (1, 2, 3)
>>> L = [4, 5, 6]
>>> print(*T,*L)
1 2 3 4 5 6
Cập nhật nhiều mục từ điển
Điều này có thể sẽ không xảy ra rất thường xuyên, nhưng cú pháp có thể được sử dụng để lưu vào việc cập nhật từ điển nếu bạn đang cập nhật ít nhất ba mục:
d[0]=1;d[1]=3;d[2]=5
d={**d,0:1,1:3,2:5}
Điều này về cơ bản phủ nhận bất kỳ nhu cầu cho dict.update
.