我有一个文件如下:
1 99
2 33
3 90
4 25
5 89
Run Code Online (Sandbox Code Playgroud)
我想解析1,2,3,4,5列表x并99, 33, 90, 25, 89列入列表y,我该怎么做?
我不将部分"明白的是,我可以的ReadLine但不知道如何解析到两个列表,我想也许有一个更优雅的方式来给它除非空间劈裂,并添加words[0]到x和word[1]到y
with open('number-file') as f:
x,y = zip(*(map(int, line.split()) for line in f))
Run Code Online (Sandbox Code Playgroud)
会得到你想要的.
with open('number-file') as f:
Run Code Online (Sandbox Code Playgroud)
打开一个文件进行读取(并在代码完成后关闭它).然后,您可以简单地迭代它.
(line.split() for line in f)
Run Code Online (Sandbox Code Playgroud)
是一个生成器表达式,为每一行产生两个字符串.对于每一行,map(int, line.split())将这些字符串转换为整数.到目前为止的结果看起来像
[[1, 99], [2, 33], [3, 90], [4, 25], [5, 89]]
Run Code Online (Sandbox Code Playgroud)
有了zip,我们可以加入在结果列表中的子列表的第n个元素x和y.
从技术上讲,x和y现在是元组(不可变)而不是列表(可以扩展和更改).在大多数情况下,元组也应该工作,但如果你真的需要列表,只需添加
x,y = list(x), list(y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |