Давайте посмотрим, что здесь происходит под капотом
In [9]: b = "3.1"
In [10]: for i in b:
...: print(i)
...:
3
.
1
Как вы можете видеть, поскольку b
- это строка, итерирование по строке дает вам отдельные символы строки, которые вы в итоге получаетедобавление в список, и список выглядит как ['3', '.', '1']
Следовательно, вам нужно преобразовать строку в число с плавающей точкой, а затем добавить ее в список, который так же прост, как
In [11]: b = "3.1"
In [12]: [float(b)]
Out[12]: [3.1]
Здесь мы конвертируем b в число с плавающей точкой и создаем один элемент списка с 3.1
, поскольку он является единственным элементом
Аналогичная идея может быть применена, когда вы имеете дело со списком строк, и каждая строка представляетfloat, где мы конвертируем каждый элемент в float и создаем из него новый список
In [13]: b = [ "2.7", "2.9", "3.1"]
In [14]: [float(i) for i in b]
Out[14]: [2.7, 2.9, 3.1]