Skip to main content
 首页 » 编程设计

Python:非常基础,无法弄清楚为什么它不拆分为列出的较大数字而是拆分为单个整数

2025年05月04日14cmt

这里的问题真的很快,其他一些人帮助我解决了另一个问题,但我无法让他们的任何代码工作,因为我不了解这里非常基本的东西。

8000.5   16745     0.1257 
8001.0   16745     0.1242 
8001.5   16745     0.1565 
8002.0   16745     0.1595 
8002.5   16745     0.1093 
8003.0   16745     0.1644 

我有一个这样的数据文件,当我输入时

f1 = open(sys.argv[1], 'rt') 
for line in f1: 
    fields = line.split() 
    print list(fields [0]) 

我得到输出

['1', '6', '8', '2', '5', '.', '5'] 
['1', '6', '8', '2', '6', '.', '0'] 
['1', '6', '8', '2', '6', '.', '5'] 
['1', '6', '8', '2', '7', '.', '0'] 
['1', '6', '8', '2', '7', '.', '5'] 
['1', '6', '8', '2', '8', '.', '0'] 
['1', '6', '8', '2', '8', '.', '5'] 
['1', '6', '8', '2', '9', '.', '0'] 

而我本来希望通过尝试打印列表(字段)之类的东西来获得类似的东西

[16825.5, 162826.0 ....]  

我在这里缺少什么明显的东西?

谢谢!

请您参考如下方法:

删除列表; .split() 已经返回一个列表。

您正在将字段的第一个 元素转换为列表:

>>> fields = ['8000.5', '16745', '0.1257'] 
>>> fields[0] 
'8000.5' 
>>> list(fields[0]) 
['8', '0', '0', '0', '.', '5'] 

如果您想将第一列作为列表,您可以随时构建一个列表:

myfirstcolumn = [] 
for line in f1: 
    fields = line.split() 
    myfirstcolumn.append(fields[0]) 

这可以简化为列表理解:

myfirstcolumn = [line.split()[0] for line in f1]