Как преобразовать список чисел с плавающей запятой в список процентов? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть этот список:

list = [
  0.6490486257928119,
  0.2996742671009772,
  0.589242053789731
]

Я хотел бы преобразовать его в список процентов с одним десятичным знаком, например:

list = [
  64.9%,
  29.9%,
  58.9%
]

I don't know how to proceed. 

Ответы [ 3 ]

2 голосов
/ 05 мая 2020

Вы можете использовать понимание списка. Однако имейте в виду, что в результате вы хотите изменить type элементов с float на str из-за символа процента, который вы хотели бы включить.

В качестве примечания: вы не следует использовать list в качестве имени переменной, потому что таким образом вы перезаписываете метод Pythons list.

lst = [0.6490486257928119, 0.2996742671009772, 0.589242053789731]

new_lst = [f'{i*100:.1f}%' for i in lst]

print(new_lst)
0 голосов
/ 05 мая 2020
print("{0:.1f}%".format(0.6490486257928119*100))

Часть 1:

"{0:.1f}%"

Это «раздел готового формата» символ процента, он не нуждается в объяснении ... {in здесь} форматированный текст помещается здесь '0' (ноль) - это индекс целого числа, которое мы хотим отформатировать. Здесь находится 0,649048 ... x100 . ". 1" указывает расположение десятичной точки, а « f » - для float

* 1019. * Часть 2:
.format(0.6490486257928119*100)

И в конце функции .format () , где мы указываем целое число, или double, или float

ДЕЙСТВИТЕЛЬНО ИЗВИНИТЕ ЗА МОЙ АНГЛИЙ SH !!!

0 голосов
/ 05 мая 2020

Вы могли бы сделать это с пониманием списка. Например:

list = [0.6490486257928119, 0.2996742671009772, 0.589242053789731]

new_list = [ round(x*100,1) for x in list] #each value in list multiplied by 100 and round up to 1 floating number

new_list = [64.9, 29.9, 58.9]

, если вы хотите иметь%, вы можете преобразовать в строку

new_list = [ str(round(x*100,1))+"%" for x in list]

new_list = ["64.9%", "29.9%", "58.9%"]
...