我得到了用逗号分隔的总统的名字,其中有些细节如下:
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.
怎么做?请帮忙
使用
zip
函数和基于positive look-ahead的正则表达式:以下正则表达式:
将找到位于
,
或-
之前或位于字符串末尾的任何单词字符组合如果您处理的是较长的列表,我建议您使用^{} ,这对于此类问题更为合适,而且在列表的列数不相同时也很好。它还接受
fillvalue
参数来填充缺少的列:请注意,在这两种情况下,如果要迭代
izip_longest
或zip
的结果,则不需要调用list
,这只是为了演示结果如果你想用
re
从您的数据集来看,似乎只有名称可以包含
,
,其他名称不能,因此您可以使用rsplit
函数从后面拆分,并为其指定参数','
和2
,这意味着使用逗号从后面拆分并在2个拆分处停止示例-
另外,如果对于
name
列表,条件是在没有,
的情况下选择列表中的姓氏,或者如果有逗号,则选择第一个逗号之前的姓氏。一个简单的解决方案是使用“,”再次拆分名称列表,这一次正常的split(',')
函数应该这样做,然后使用第一个元素(如果没有逗号,则只有一个元素),然后使用split(' ') and then get the last element using
[-1]`index再次按空格拆分示例-
相关问题 更多 >
编程相关推荐