Завершающий ,
просто сообщает Python, что значение является последовательностью, в данном случае tuple
.
Круглые скобки обычно используются в математических выражениях. И они также используются для определения кортежей.
>>> (3 + 2)
5
>>> (10)
10
Если в паре скобок содержится только один элемент, он рассматривается как выражение и оценивается, возвращая одно значение.
Чтобы явно сказать Python, что это tuple
, в конце необходимо добавить ,
.
>>> (10,)
(10,)
>>> t = 1,
>>> t
(1,)
>>> type(t)
<class 'tuple'>
Возвращаясь к вашему вопросу,
s = set(((1,2),))
(1, 2)
- это tuple
.
((1, 2),)
- это tuple
кортежей (в данном случае только один кортеж).
Нечто подобное этому,
>>> ((1, 2), (3, 4))
((1, 2), (3, 4))
только спервый элемент.
Преобразование ((1,2),)
в set
вернет set
с (1, 2)
в качестве единственного элемента. Самая внешняя пара скобок - это просто вызов функции set
.