Нет, вы попадаете в область Контекстных свободных грамматик в этой точке.
Вы почти получили его:
for i in a:
c.append('Adi_' + str(i))
Ваша начальная строка преобразует список whole a
в виде строки.
Обратите внимание, что вы может избавиться от цикла со списком и некоторым форматированием строки :
c = ['Adi_%s' % s for s in a]
или
c = ['Adi_{0}'.format(s) for s in a] #Python >= 2.6
Или все в одной строке:
>>> for s in ['Welcome Adi_%d' % i for i in range(2,6)]:
... print s
...
Welcome Adi_2
Welcome Adi_3
Welcome Adi_4
Welcome Adi_5
Использование списков:
b = 5
a = range(2, b + 1)
c = ['Adi_'+str(i) for i in a]
for x in c:
print"Welcome {0}".format(x)
Или как понимание списка:
b = 5
a = range(2, b + 1)
c = ["Adi_" + str(i) for i in a]