Это форма распаковки кортежа. С круглыми скобками:
(plot1,) = ax01.plot(t,yp1,'b-')
ax01.plot() возвращает кортеж, содержащий один элемент, и этот элемент присваивается plot1. Без этой запятой (и, возможно, круглых скобок) plot1 был бы назначен весь набор. Обратите внимание на разницу между a и b в следующем примере:
>>> def foo():
... return (1,)
...
>>> (a,) = foo()
>>> b = foo()
>>> a
1
>>> b
(1,)
Вы можете опустить скобки как в (a,), так и (1,), я оставил их для ясности.
Ответ 2
Python позволяет поместить кортежи в левой части задания.
Код в вопросе является примером этого, он может выглядеть как особый случай оператора, но это действительно просто назначение кортежей для случая, происходящее здесь. Некоторые примеры могут помочь:
a, b = (1, 2)
который дает вам a = 1 и b = 2.
Теперь существует и понятие одного элемента.
x = (3,)
дает вам x = (3,), который является кортежем с одним элементом, синтаксис выглядит немного странно, но Python должен отличать от простой круглой скобки, поэтому он имеет конечную запятую для этого (например, z=(4) делает z целым числом 4, а не кортеж). Если вы хотите сейчас извлечь этот элемент, тогда вы бы хотели использовать что-то вроде вопроса в вашем вопросе:
y, = x
теперь y равно 3. Обратите внимание, что это просто назначение кортежей здесь, синтаксис просто немного странный, потому что это кортеж длины один.
Добавление , после того, как переменная помещает его в кортеж с одним элементом. Затем этому кортежу присваивается значение (с оператором =), возвращаемое из ax01.plot(t,yp1,'b-').