Принятый ответ совершенно правильный. Другой возможный способ, который я лично считаю немного более чистым, - это использовать Numpy для транспонирования точек данных.
import numpy as np
import matplotlib.pyplot as plt
a = [1, 2]
b = [2, 4]
c = [2.5, 4]
d = [4.5, 5]
l = np.array([a,b,c,d]) #[[1,2], [2,4], [2.5,4], [4.5,5]]
datapoints = l.T #[[1, 2, 2.5, 4.5], [2, 4, 4, 5]]
plt.scatter(datapoints[0], datapoints[1])
plt.show()
Еще чище, чем это было бы
x,y = l.T
plt.scatter(x, y)