gpt4 book ai didi

python - 如何将包含符号和数字的字符串转换为 float 或整数列表?

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:54 25 4
gpt4 key购买 nike

我有以下格式的列表:

my_list = ['2-7', '10-22', '22-50', '50-70', '2-7', '10-22', '22-50', '50-70', '2-7', '10-22', '22-50', '50-70']

如您所见,它包含作为间隔的字符串。

我正在尝试将此列表转换为以下格式:

list_of_lists = [[2.0, 7.0], [10.0, 22.0], [22.0, 50.0], etc....]

我一直在尝试使用以下结构:

list_2 = []
for item in my_list:
list_2.append(list(item))
list_3 = [x for x in list_2 if x != "-"]
list_4 = []
for item_2 in list_3:
var = float(item_2)
list_4.append(var)

此代码的问题在于它将两位数字转换为两个单独的数字。此外,总的来说,感觉这不是最佳解决方案。

谁能给个指导或建议,好吗?

干杯:)提前谢谢你。

最佳答案

您走在正确的轨道上,但您缺少的关键是 str.split()可以在这里完成大部分繁重工作的方法。

此外,我个人会在顶层使用列表理解来简化代码:

>>> [map(float, el.split('-')) for el in my_list]
[[2.0, 7.0], [10.0, 22.0], [22.0, 50.0], [50.0, 70.0], [2.0, 7.0], [10.0, 22.0], [22.0, 50.0], [50.0, 70.0], [2.0, 7.0], [10.0, 22.0], [22.0, 50.0], [50.0, 70.0]]

这里:

  • [... el in my_list] 遍历 my_list 中的字符串,将表达式(未显示)应用于每个元素,并将结果作为列表返回;
  • el.split('-') 在破折号处拆分每个元素,将每个字符串转换为字符串列表;
  • map(float, ...) 将子列表中的每个字符串转换为 float 。

关于python - 如何将包含符号和数字的字符串转换为 float 或整数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45422575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com