我有第一个列表调用OGList,它有一个字符串列表,之后我想从OGList中提取所有数字和字符串到一个字符串列表和一个数字列表中。
我的输入:
OGList = ['A10', 'BMW320i', 'Nissan NSX200', 'Benz 220c']
numlist = []
strlist = []
otherlist = []
for i in OGList:
for x in i:
if x.isalpha():
strlist.append(x)
elif x.isdigit():
numlist.append(x)
else:
otherlist.append(x)
print(numlist)
print(strlist)
我的输出:
['1', '0', '3', '2', '0', '2', '0', '0', '2', '2', '0']
['A', 'B', 'M', 'W', 'i', 'N', 'i', 's', 's', 'a', 'n', 'N', 'S', 'X', 'B', 'e', 'n', 'z', 'c']
但我希望它像我想要的输出一样粘在一起。
我想要的输出是:
['10', '320', '200', '220']
['A', 'BMWi', 'NissanNSX', 'Benzc']
如何修复我的代码?
5条答案
按热度按时间h7appiyu1#
因为你用
regex
标记了这个问题,这里有一个替代方法,使用相同的方法来分隔三个组:之后,
res
是一个包含不同列表的dict:请注意,这里没有
elif
和else
,您必须确保模式是互斥的,并涵盖所有情况,否定^
,其他组应该做得很好。7eumitmz2#
9udxz4iz3#
您需要为每个输入字符串创建一个单独的输出字符串,而不仅仅是将每个字符追加到输出列表中。
2exbekwf4#
答案是,在每次插入列表之前,都需要添加一个临时str
uqxowvwt5#
一个奇怪的基于
itertools.groupby()
的方法怎么样?