文本转成以元组为元素的列表

 一、文本内容及代码如下:

data_str = """
0,5    ,    42.9    ,    -0.4    ,    0.2    ,    4.5
5,10    ,    61.5    ,    1.3    ,    1.2    ,    5.6
10,15    ,    70.3    ,    2.4    ,    1.7    ,    6.1
15,20    ,    74.1    ,    2.7    ,    1.8    ,    6.2
20,25    ,    75.7    ,    2.9    ,    2.1    ,    6.3
25,30    ,    72.4    ,    3    ,    1.9    ,    6.2
30,35    ,    78.4    ,    3.4    ,    1.9    ,    6.4
35,40    ,    77.5    ,    3.6    ,    2.2    ,    6.6
40,45    ,    79.2    ,    3.6    ,    1.7    ,    6.3
45,50    ,    80.5    ,    3.8    ,    3.2    ,    7
50,100    ,    81.7    ,    4.2    ,    2.4    ,    6.5
100,500    ,    88.7    ,    6.1    ,    4.6    ,    8.2
500,2000    ,    93    ,    8.8    ,    8    ,    9.5
"""

data_lines = data_str.strip().split('\n')
data = [tuple(map(float, line.replace(' ', '').split(','))) for line in data_lines]


print(data)

二、解读: 

第1句代码:data_str.strip().split('\n') 的用是先去除 data_str 两端的空白字符,然后将其按照换行符分割成多个字符串,并返回一个字符串列表。效果如下图:

如果,想把转换后列表的每一行作为一个元组,以便于后面调用,加如下一句:

data = [tuple(map(float, line.replace(' ', '').split(','))) for line in data_lines]

第2句代码:data = [tuple(map(float, line.replace(' ', '').split(','))) for line in data_lines] 

效果如下图:

 第2句代码解读:

首先,data_lines 应该是一个包含多行数据的列表。对于列表中的每一行 line,代码会执行以下操作:

  1. line.replace(' ', ''):这行代码会移除 line 中的所有空格。
  2. line.split(','):这行代码会根据逗号将 line 分割成多个部分,形成一个新的列表。
  3. map(float, line.replace(' ', '').split(',')):这行代码会将上一步得到的列表中的每个元素转换为浮点数。
  4. tuple(...):这行代码会将转换后的浮点数列表转换为一个元组。
  5. data = [tuple(...) for line in data_lines]:这行代码会将每个 line 转换得到的元组添加到 data 列表中。
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值