python列表表达式

时间:2012-01-10 11:10:48

标签: python list expression

说我有一个字符串:

s = '''1 2 3
4 5 6
7 8 9
'''

我想将字符串s的每一行转换为浮点值列表,即:

l = [[1.0 2.0 3.0], [4.0 5.0 6.0], [7.0 8.0 9.0]]

我怎么能在一行中做到这一点?

3 个答案:

答案 0 :(得分:8)

[[float(v) for v in l.split()] for l in s.strip().split('\n')]

答案 1 :(得分:4)

s = '''1 2 3
4 5 6
7 8 9'''

l = [ map( float, i.strip().split(" ") ) for i in s.split( "\n" ) ] 

如果没有“松散”空格,则不需要注意strip。 Strip工作为trim例如。在PHP中。

答案 2 :(得分:2)

首先遍历行,然后遍历字符串并将字符串转换为浮点数。如果您希望将转化为整数,请将float更改为int

[[float(x) for x in line.split(' ')] for line in s.split('\n')]