#python
Вопрос:
Всем привет, я новичок в python и работаю над небольшим проектом. Я хочу распечатать 100 int для консоли; каждый из элементов списка имеет разную вероятность появления, как определено в a_listDistribution, я хочу вывести числа на консоль как int. ниже приведен мой код:
a_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a_listDistribution = [0.5, 0.4, 0.0125, 0.0125, 0.0125, 0.0125, 0.0125, 0.0125, 0.0125, 0.0125]
att1Int = random.choices(a_list, a_listDistribution)
print(att1Int)
В настоящее время консоль выводит что-то похожее на это
[0],[0],[1],[0]…..
Я бы хотел, чтобы он выводил 0,0,1,0
заранее благодарю вас, если вы можете мне помочь!
Комментарии:
1. Как насчет распаковки списка:
print(*att1Int)
2. Поскольку вы использовали значение по умолчанию
k=1
,random.choices
будет возвращен список, содержащий ровно 1 элемент. он не возвращается[0],[0],[1],[0]
. Я не понимаю, как получить список целых чисел, разделенных запятыми, только с одним целым числом. Выхода не может быть"0,0,1,0"
.3. Может
",".join(str(value) for value in random.choices(a_list, a_listDistribution,k=4))
быть, это то, что вам нужно?
Ответ №1:
Вы могли бы либо пойти с
print(att1Int[0]) # getting the first element
или
print(*att1Int) # unpacking
Ответ №2:
Если у вас есть несколько значений (в основном список списков), вы можете сделать что-то вроде этого
print([a[0] for a in att1Int])
или
print(', '.join([a[0] for a in att1Int]))
Если att1Int всегда будет иметь одно значение, вы можете проиндексировать или распаковать, как сказал Гокул Питу