python:如何将txt文件中的数值数据读入到list中,且在list中存在的格式为float类型或者其他数值类型

    最近需要将txt文件中的数值型数据读入到list列表中,但是网上很多的方法将txt文件中的数据读入到list中时,在list中的存在形式是string类型,在后面的运算很麻烦,所以需要将string类型转换为float类型,在这里在说明一下,将txt文件内容读入后,是一种嵌套列表的形式,[[第一行数据],[第二行数据],[第三行数据],[第四行数据]......],相信你们也需要这种形式。话不多说,跟着我的步伐开始操作:

1.介绍我的txt文件内容是这样的,准确来说是在excle表格中复制粘贴到txt文档中的(这里的一列介绍excle中的一列,一行就是excle中的一行),如图所示:


2.将txt文档中的数据读入到list列表中,代码如下:
def loadDatadet(infile):
    f=open(infile,'r')
    sourceInLine=f.readlines()
    dataset=[]
    for line in sourceInLine:
        temp1=line.strip('\n')
        temp2=temp1.split('\t')
        dataset.append(temp2)
     return dataset
infile='F:\pycharm\h5py_torch\hdf5_format\\test.txt'
infile=loadDatadet(infile)
print('dataset='infile)

这样输出的结果如图,可以看出数据已经存入到了list中,但是格式为string类型:


3.将string类型转换为float类型,只需在原有的代码中添加一些用于数据类型转换的代码即可,执行的代码如下:
def loadDatadet(infile,k):
    f=open(infile,'r')
    sourceInLine=f.readlines()
    dataset=[]
    for line in sourceInLine:
        temp1=line.strip('\n')
        temp2=temp1.split('\t')
        dataset.append(temp2)
    for i in range(0,len(dataset)):
        for j in range(k):
            dataset[i].append(float(dataset[i][j]))
        del(dataset[i][0:k])
    return dataset
infile='F:\pycharm\h5py_torch\hdf5_format\\test.txt'
k=6
infile=loadDatadet(infile,k)
print('dataset=',infile)

此时输出的结果如图所示,已经将string类型转换为float类型,特别说明一下,k值的含义是txt中的列数,本实验是6列,所以k的赋值为6。


如果不想为float类型,想为int或者double类型,直接将代码中的float变为int或者double即可。

  • 37
    点赞
  • 178
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 好的,这是一个关于列表统计的问题,属于计算类问题。以下是解答: 首先,我们需要遍历列表所有元素,并判断它们是否为数值类型元素。可以使用isinstance()函数判断元素类型是否为int、float或complex类型。如果是,就增加计数器。 代码示例: ``` def count_num(lst): count = 0 for item in lst: if isinstance(item, (int, float, complex)): count += 1 return count ``` 接下来,我们只需要调用count_num()函数并输入列表作为参数,即可得到数值类型元素的个数。 例如: ``` lst = [1, 2.0, 3+4j, "hello", [5, 6]] print(count_num(lst)) # 输出为3 ``` 在这个例子,列表有3个数值类型元素,故输出为3。 希望这个解答能够帮助到您,如果您有其他问题,可以随时向我提出。 ### 回答2: 可以使用循环遍历列表的每个元素,如果元素的类型是int、float或complex,则计数器加1。最后输出计数器的值即可。 具体步骤如下: 1. 初始化计数器count为0。 2. 使用for循环遍历列表的每个元素。 3. 在循环,使用type()函数判断元素的类型。如果元素的类型是int、float或complex,则计数器count加1。 4. 循环结束后,输出计数器count的值即为列表数值类型元素的个数。 以下是具体实现代码: ``` def count_numeric_elements(lst): count = 0 for element in lst: if isinstance(element, (int, float, complex)): count += 1 return count # 测试代码 input_list = [1, 2.5, 'abc', (2+3j), [4, 5], 6] result = count_numeric_elements(input_list) print("数值类型元素的个数:", result) ``` 运行以上代码会输出:数值类型元素的个数: 4 ### 回答3: 要实现这个任务,首先需要定义一个函数来统计数值类型元素的个数。具体的步骤如下: 1. 定义一个计数器变量count,并初始化为0。 2. 遍历列表的每个元素。 3. 对于每个元素,使用type()函数判断其类型。 4. 如果类型是int、float或complex之一,将计数器count加1。 5. 遍历完成后,输出计数器count的值,即为列表数值类型元素的个数。 下面是具体实现的代码: ```python def count_numeric_elements(lst): count = 0 for elem in lst: if type(elem) in [int, float, complex]: count += 1 return count # 示例数据 my_list = [1, 2.5, 3+4j, 'hello', [1, 2, 3]] result = count_numeric_elements(my_list) print("数值类型元素的个数为:", result) ``` 在上述示例代码,给定一个包含了数值类型元素的列表my_list,并将该列表作为参数传递给count_numeric_elements()函数。最终输出的结果为2,表明列表有2个数值类型的元素。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值