Python 列表表达式
假设我有一个字符串:
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 个回答
2
这个代码先逐行读取,然后再处理每一行中的字符串,把字符串转换成浮点数。如果你想把它转换成整数,只需要把 float
改成 int
就可以了。
[[float(x) for x in line.split(' ')] for line in s.split('\n')]
8
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这就像你从冰箱里拿出食材,然后在厨房里做饭一样。
有些时候,我们会用到一些工具或者库来帮助我们更方便地处理这些数据。就像你在做饭时可能会用到刀、锅、铲子等工具,这些工具可以让你更轻松地完成烹饪。
在编程的世界里,这些工具和库就像是你做饭时的助手,它们可以帮助你更快地完成任务,减少出错的机会。
总之,理解如何获取和使用数据是编程中非常重要的一部分,就像学会做饭的基本技巧一样。
[[float(v) for v in l.split()] for l in s.strip().split('\n')]
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 里也是这样。