Как перейти к коду, чтобы получить вывод с плавающей точкой в ​​списке - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь получить вывод [3.1], где число в списке - это число с плавающей запятой.

b = "3.1"
list1 = []
for i in b:
    list1.append(i)
print(list1)

Я ожидаю, что на выходе будет [3.1], но код выше выводит ['3', '.', '1']

Ответы [ 4 ]

1 голос
/ 10 мая 2019

for i in b: list1.append(i) означает «для каждого символа в строке b, добавить этот символ в список list1», давая вам именно то, что вы просили: список из трех символов.

Если вы просто хотите превратить b в float и добавить в список, этого достаточно:

list1.append(float(b))
0 голосов
/ 10 мая 2019

Давайте посмотрим, что здесь происходит под капотом

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]
0 голосов
/ 10 мая 2019

В коде переменная b имеет форматную строку.Преобразуйте его в плавающее и добавьте в список.

b = "3.1"
list_1 = []
list_1.append(float(b))
print (list_1)

Это должно дать вам желаемый результат.

Как вы делаете, переменная b имеет строковый формат.Это заставляет цикл for добавлять отдельный символ к списку, который соответственно равен «3», «.», «1».Преобразование строки в float должно решить вашу проблему.

0 голосов
/ 10 мая 2019

Попробуйте это:

list1 = [float(b)]

ВЫВОД :

[3.1]

Причина, по которой вы получаете список типа ['3', '.', '1'], заключается в том, что вы выполняете итерациинад всеми символами строки b.Вам необходимо преобразовать строковый тип b в плавающее, а затем добавить его в список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...