Форматирование списка через запятую - PullRequest
0 голосов
/ 26 января 2020

Я хочу создать список из 20 случайных чисел в списке, но хочу напечатать результат этих чисел через запятую. Получаю ошибку, когда я пытаюсь отформатировать список участников ниже.

res = ('{:,}'.format(Principal))
TypeError: unsupported format string passed to list.__format__.

Как это исправить?

def inventory(i,j):
    import random
    Amount = random.choices([x for x in range(i,j+1) if x%25 == 0],k=20)
    return Amount

def main():
    Principal = inventory(100000, 1000000)
    res = ('{:,}'.format(Principal))
    print('\nInventory:\n', + str(res))
    minAmt = min(Principal)
    maxAmt = max(Principal)

    res1 = ('{:,}'.format(minAmt))
    res2 = ('{:,}'.format(maxAmt))
    print('\nMin amount:' + str(res1))
    print('\nMax amount:' + str(res2))

if __name__ == '__main__':
    main()

Ответы [ 2 ]

0 голосов
/ 26 января 2020

Principal - это список сумм, а , - не спецификатор формата для списков. Выведите каждую сумму индивидуально:

import random

def inventory(i,j):
    return random.choices([x for x in range(i,j+1) if x%25 == 0],k=20)

amounts = inventory(100000, 1000000)
print('\nInventory:\n')
for amount in amounts:
    print(f'{amount:,}')

print(f'\nMin amount: {min(amounts):,}')
print(f'\nMax amount: {max(amounts):,}')

Вывод:

Inventory:

283,250
904,600
807,800
297,850
314,000
557,450
167,550
407,475
161,550
684,225
787,025
513,975
252,750
217,500
394,200
777,475
621,575
888,625
895,525
846,650

Min amount: 161,550

Max amount: 904,600
0 голосов
/ 26 января 2020

Вы ищете str.join. Например,

res = ','.join(map(str, Principal))

Кроме того, следующий недопустимый синтаксис:

print('\nInventory:\n', + str(res))

Недопустимый +.

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