Когда я печатаю один элемент своего списка[int], он печатается как [1] как мне удалить скобки, чтобы это было просто число (преобразовать список[int] в int) — Python

#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 всегда будет иметь одно значение, вы можете проиндексировать или распаковать, как сказал Гокул Питу