list1= ['34 5\n', '67 37\n', '40 33\n', '99 100\n', '55 22']
以上是我所拥有的清单,如何才能实现
['34','5','67','37','40','33','99','100','55','22']
我想删除空格和'\ n'。 rstrip,strip,replace已经尝试但没有工作
list1.rstrip('\n')
list1.strip('\n')
list1.remove('\n')
答案 0 :(得分:7)
使用一对嵌套的列表推导,其内部在空格上拆分字符串,其外部将嵌套列表合并在一起。
>>> list1= ['34 5\n', '67 37\n', '40 33\n', '99 100\n', '55 22']
>>> [x for sublist in [s.split() for s in list1] for x in sublist]
['34', '5', '67', '37', '40', '33', '99', '100', '55', '22']
或者,如果这不符合您的喜好,请改为使用循环。 (这可能比嵌套列表理解更清晰,可以考虑它。)
>>> result = []
>>> for s in list1:
for num in s.split():
result.append(num)
>>> result
['34', '5', '67', '37', '40', '33', '99', '100', '55', '22']
答案 1 :(得分:1)
from itertools import chain
list2 = list(chain.from_iterable(map(str.split,list1)))
你可以将其分解为更具可读性
flatten_list = chain.from_iterable
list_of_splits = map(str.split,list1) #essentially [s.split() for s in list1]
list2 = flatten_list(list_of_splits)
答案 2 :(得分:0)
list2 = []
for item1 in list1:
split_list = " ".split(item1)
for item2 in split_list:
list2.append(item2.rstrip())