Do we really need to index this stuff? The values are exposed and accessible without index reference.
>>> authors = "Audre Lorde,Gabriela Mistral,Jean Toomer,An Qi,Walt Whitman,Shel Silverstein,Carmen Boullosa,Kamala Suraiyya,Langston Hughes,Adrienne Rich,Nikki Giovanni"
>>> [x.split()[-1] for x in authors.split(',')]
['Lorde', 'Mistral', 'Toomer', 'Qi', 'Whitman', 'Silverstein', 'Boullosa', 'Suraiyya', 'Hughes', 'Rich', 'Giovanni']
>>>
Going down the rabbit holeā¦
>>> import re
>>> authors = "Audre Lorde, Gabriela Mistral, Jean Toomer, An Qi,Walt Whitman, Shel Silverstein, Carmen Boullosa, Kamala Suraiyya, Langston Hughes, Adrienne Rich, Nikki Giovanni"
>>> [x.split()[-1] for x in re.split(r'[(,)|(,*)]', authors)]
['Lorde', 'Mistral', 'Toomer', 'Qi', 'Whitman', 'Silverstein', 'Boullosa', 'Suraiyya', 'Hughes', 'Rich', 'Giovanni']
>>>
Not that it proves anything, if in fact, nothing, itās a rabbit hole. Descend at oneās own peril or benefit, as it were.
My own concern was the whitespace potentially following the comma but it seems Python has worked that out and strips it from the proceeds.
>>> authors = "Audre Lorde, Gabriela Mistral, Jean Toomer, An Qi, Walt Whitman, Shel Silverstein, Carmen Boullosa, Kamala Suraiyya, Langston Hughes, Adrienne Rich, Nikki Giovanni"
>>> [x.split()[0] for x in authors.split(',')]
['Audre', 'Gabriela', 'Jean', 'An', 'Walt', 'Shel', 'Carmen', 'Kamala', 'Langston', 'Adrienne', 'Nikki']
>>>
Iām blown away by having taken this long to discover it. Dang!
Going further downā¦
By only the slightest turn of phrase we can go from a list to a set to dictionary. No magic involved, just syntax.
>>> authors = "Audre Lorde, Gabriela Mistral, Jean Toomer, An Qi, Walt Whitman, Shel Silverstein, Carmen Boullosa, Kamala Suraiyya, Langston Hughes, Adrienne Rich, Nikki Giovanni"
>>> [x.split()[0] for x in authors.split(',')]
['Audre', 'Gabriela', 'Jean', 'An', 'Walt', 'Shel', 'Carmen', 'Kamala', 'Langston', 'Adrienne', 'Nikki']
>>> [x.split()[-1] for x in authors.split(',')]
['Lorde', 'Mistral', 'Toomer', 'Qi', 'Whitman', 'Silverstein', 'Boullosa', 'Suraiyya', 'Hughes', 'Rich', 'Giovanni']
>>> [(x.split()[-1], x.split()[0]) for x in authors.split(',')]
[('Lorde', 'Audre'), ('Mistral', 'Gabriela'), ('Toomer', 'Jean'), ('Qi', 'An'), ('Whitman', 'Walt'), ('Silverstein', 'Shel'), ('Boullosa', 'Carmen'), ('Suraiyya', 'Kamala'), ('Hughes', 'Langston'), ('Rich', 'Adrienne'), ('Giovanni', 'Nikki')]
>>> {(x.split()[-1], x.split()[0]) for x in authors.split(',')}
{('Whitman', 'Walt'), ('Lorde', 'Audre'), ('Suraiyya', 'Kamala'), ('Boullosa', 'Carmen'), ('Toomer', 'Jean'), ('Qi', 'An'), ('Giovanni', 'Nikki'), ('Silverstein', 'Shel'), ('Rich', 'Adrienne'), ('Hughes', 'Langston'), ('Mistral', 'Gabriela')}
>>> {x.split()[-1]: x.split()[0] for x in authors.split(',')}
{'Lorde': 'Audre', 'Mistral': 'Gabriela', 'Toomer': 'Jean', 'Qi': 'An', 'Whitman': 'Walt', 'Silverstein': 'Shel', 'Boullosa': 'Carmen', 'Suraiyya': 'Kamala', 'Hughes': 'Langston', 'Rich': 'Adrienne', 'Giovanni': 'Nikki'}
>>>
List, Set, Dictionary. Happy trails drawing all three of these together. They make up the entire strategy of data management.