在最后一个空间上拆分列表的第一个元素

时间:2019-06-10 17:06:55

标签: python

我有一个看起来像这样的列表列表:

data = [["first m. last", "info", "info", "info"],["first last", 
"info", "info", "info"]...]

我想在每个列表中将姓氏从每个列表中拆分成自己的字符串。

我的想法是在使用split()的同时创建列表推导,并在字符串(-1)中查找最后一个空格。我觉得自己走在正确的轨道上,但是我不明白我要去哪里错了。

dataNew = [row[0].split(" ", -1)[0] for row in data]

实际输出:

["firstname", "firstname", "firstname", ...]

预期输出:

dataNew = [["first m.", "last", "info", "info", "info"], ["first", 
"last", "last", "info", "info", "info"]...]

非常感谢您的指导!我也不能为此使用熊猫。

1 个答案:

答案 0 :(得分:2)

您所做的一切都差不多:

data = [
    ["first m. last", "info", "info", "info"],
    ["first last", "info", "info", "info"]
]

print([d[0].rsplit(' ', 1) + d[1:] for d in data])
[['first m.', 'last', 'info', 'info', 'info'],
 ['first', 'last', 'info', 'info', 'info']]

P.S。 rsplit