我得到了用逗号分隔的总统名字和一些细节,如下所示:
James Earl Carter, Jr., 1977-1981, Democrat
Ronald Wilson Reagan, 1981-1989, Republican
George Herbert Walker Bush, 1989-1993, Republican
现在我想要三个这样的列表:
Name = ['Carter' , 'Reagan' , 'Bush']
StartYears = [1977,1981,1989]
EndYears = [1981,1989,1993]
Party = ['Democrat','Republican','Republican']
但是我面临着一些问题:
James Earl Carter, Jr. contains comma already so splitting is not working properly.
怎么做?请帮忙。
请您参考如下方法:
从你的数据集中看起来只有名字可以有 , 在他们身上,其他人不会,所以你可以使用 rsplit 从后面 split 的功能,并给出它是参数 ',' 和 2 ,这意味着使用逗号从后面拆分并在 2 个拆分处停止。
例子-
s = "James Earl Carter, Jr., 1977-1981, Democrat".rsplit(',',2)
print(s)
>> ['James Earl Carter, Jr.', ' 1977-1981', ' Democrat']
此外,如果对于 name 列表,条件是如果没有 , 则选择列表中的姓氏,或者如果有逗号,则选择姓氏就在第一个逗号之前。一个简单的解决方案是使用 ',' 再次拆分名称列表,这一次正常的 split(',') 函数应该做,然后取第一个元素(如果没有逗号,会有只有一个元素),然后再次使用 split(' ') 将其按空格拆分,然后使用 [-1]` 索引获取最后一个元素。
例子-
>>> n = 'James Earl Carter, Jr.'.split(',')[0].split(' ')[-1]
>>> print(n)
Carter
>>> m = 'Ronald Wilson Reagan'.split(',')[0].split(' ')[-1]
>>> print(m)
Reagan
