从python中的列表中删除空格和\ n?

时间:2014-02-07 23:02:41

标签: python

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')

3 个答案:

答案 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())