Python列表操作挑战



我有一个python列表:

name = ['A.A.BCD', 'B.B.AAD', 'B.A.A.D']

我希望在第二次之前放弃一切。剩下的自己留着。以下是我的想法。

[n.split('.')[2] for n in name]

上面的对除最后一个条目外的所有条目都有效。可以这样做:

期望输出:['BCD', 'AAD', 'A.D']

阅读split()的文档,您会发现它有一个可选参数用于最大分割数-使用此参数使最后一个工作:

[n.split('.',maxsplit=2)[2] for n in name]

看到https://docs.python.org/3/library/stdtypes.html?highlight=split str.split

这样做的最大缺点是,如果没有两个,它将失败。在字符串中,因此使用for循环可以更健壮。

name = ['A.A.BCD', 'B.B.AAD', 'B.A.A.D']
['.'.join(n.split('.')[2:]) for n in name]

结果

['BCD', 'AAD', 'A.D']