我在python中有一个字符串,如下所示:
d4 c3 b2 a1 02 00 04 00 00 00 00 00 00 00 00 00
ff ff 00 00 01 00 00 00 00 00 00 00 00 00 00 00
36 00 00 00 36 00 00 00 00 1c 23 10 f8 f1 00 1b
17 01 10 20 08 00 45 00 00 28 df 27 40 00 80 06
2b 87 c7 08 1a 0a 0a 05 05 0a 5c ea 5c ea c2 1f
我跳过了很多行。我想把每个数字放在一个列表中。当我使用.split()时,它会返回一个不仅仅是数字的列表,还会返回空格和' \ n' s,因为矩阵中间有两个空格,而且&# 39;每行末尾的换行符号。所以我得到了:
['d4', 'c3', 'b2', 'a1', '02', '00', '04', '00', '', '00', …, '\nff', 'ff', '00'…]
我只是希望数字在列表中,而不是其他任何东西,任何人都知道如何做到这一点?感谢您提前的时间。
答案 0 :(得分:16)
如果您使用.split(" ")
,那么您的程序将在每个空格上分割,而不是在任何其他空格上。如果您使用.split()
,程序将考虑多个空格,换行符,制表符和所有其他形式的空格。这应该可以帮到你找到你想要的东西。
>>> teststr = "a v w ef sdv \n wef"
>>> print teststr
a v w ef sdv
wef
>>> teststr.split()
['a', 'v', 'w', 'ef', 'sdv', 'wef']
>>> teststr.split(" ")
['a', '', '', 'v', 'w', '', '', 'ef', 'sdv', '', '', '\n', '', '', 'wef']
答案 1 :(得分:1)
python string文档包含大量可以对字符串执行的操作。
奇怪的是.split()
并没有消除你所有的空白,正如TheSoundDefense上面提到的那样。
要删除换行符,请尝试使用.replace(<target>,<replacement>)
方法,如下所示:
a = '11 11 11 11 11 11 11 11 \n22 22 22 22 22 22 22 22 \n'
b = a.replace('\n',' ')
c = b.split()
print c
>>> ['11', '11', '11', '11', '11', '11', '11', '11', '22', '22', '22', '22', '22', '22', '22', '22']
答案 2 :(得分:1)
使用不带任何参数的split()
将拆分任何空格上的内容,并将几个空格组合在一起。
以下是一个例子:
s = """d4 c3 b2 a1 02 00 04 00 00 00 00 00 00 00 00 00
ff ff 00 00 01 00 00 00 00 00 00 00 00 00 00 00
36 00 00 00 36 00 00 00 00 1c 23 10 f8 f1 00 1b
17 01 10 20 08 00 45 00 00 28 df 27 40 00 80 06
2b 87 c7 08 1a 0a 0a 05 05 0a 5c ea 5c ea c2 1f"""
data = s.split()
在这种情况下,data
将如下所示:
['d4', 'c3', 'b2', 'a1', '02', '00', '04', '00', '00', '00', '00', '00', '00', '00', '00', '00', 'ff', 'ff', '00', '00', '01', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '36', '00', '00', '00', '36', '00', '00', '00', '00', '1c', '23', '10', 'f8', 'f1', '00', '1b', '17', '01', '10', '20', '08', '00', '45', '00', '00', '28', 'df', '27', '40', '00', '80', '06', '2b', '87', 'c7', '08', '1a', '0a', '0a', '05', '05', '0a', '5c', 'ea', '5c', 'ea', 'c2', '1f']