We can readily achieve this using a nested list comprehension.
[[name for name in lst if name[0].upper() == ch] for i in range(26) for ch in [chr(ord('A') + i)]]
# [['Adam Sander'], ['Brian Amnos'], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]
If we break this down, we can see what ch is on each iteration.
[ch for i in range(26) for ch in [chr(ord('A') + i)]]
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
We're then checking those values against the first character in each name.
Or just use the already existing string.uppercase_ascii.
from string import uppercase_ascii
[[name for name in lst if name[0].upper() == ch] for ch in ascii_uppercase]
# [['Adam Sander'], ['Brian Amnos'], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]
Alternatively, you might use itertools.groupby.
from itertools import groupby
lst = ['Adam Sander', 'Brian Amnos']
{k: list(v) for k, v in groupby(sorted(lst), key=lambda x: x[0].upper())}
# {'A': ['Adam Sander'], 'B': ['Brian Amnos']}