Сообщение об ошибке совершенно ясно. Давайте посмотрим на полное сообщение:
Traceback (most recent call last):
File "script.py", line 10, in <module>
conc = ', '.join(oddNumbers)
TypeError: sequence item 0: expected str instance, list found
Таким образом, первый элемент (0) в «последовательности» (в данном случае oddNumbers
) должен был быть str
, но Python найден list
на его месте.
Давайте посмотрим, какое значение будет oddNumbers
после for-l oop, поместив оператор print
под for-l oop:
Number: 5
[['1'], ['3']]
Итак, мы видим, что первое значение в oddNumbers
равно ['1']
. Так что это действительно list
, а не str
.
Почему это list
?
В этой строке вы добавляете каждое число как str
внутри * От 1024 * до oddNumbers
:
oddNumbers.append([str(i)])
Если вместо этого просто добавить число в виде str
:
oddNumbers.append(str(i))
oddNumbers
будет список str
' s к концу for-l oop и join
будет успешным:
Number: 5
['1', '3']
1, 3