Прежде всего: хотя этот код все еще корректен в серии Python 2.x, он немного сбивает с толку и может быть записан по-другому:
def method6a():
return ''.join(str(num) for num in xrange(loop_count))
В Python 2.x обратные галочки могутиспользоваться вместо функции repr.Выражение в квадратных скобках [] является пониманием списка.В случае, если вы новичок в списках: они работают как комбинация цикла и оператора добавления списка, только вам не нужно придумывать имя для переменной:
Эти два эквивалентны:
a = [repr(num) for num in xrange(loop_count)]
# <=>
a = []
for num in xrange(loop_count):
a.append(repr(num))
В результате понимание списка будет содержать список всех чисел от 0 до loop_count (исключительно).
Наконец, string.join(iterable)
будет использовать содержимое string
объединить все строки в iterable
, используя string
в качестве разделителя между каждым элементом.Если вы используете пустую строку в качестве разделителя, то все элементы объединяются без чего-либо между ними - это именно то, что вы хотели: объединение всех чисел от 0 до loop_count.
Что касается моих модификаций:
- Я использовал
str
вместо repr
, потому что результат одинаков для всех целых чисел и его легче читать. - Я использую выражение генератора вместо понимания списка, потому что список, созданный пониманием списка, не нужен и все равно собирает мусор.Выражения генератора являются итеративными, но им не нужно хранить все элементы списка.Конечно, если у вас уже есть список строк, просто передайте этот список в объединение.
Как правило, идиома '' .join (итеративная) хорошо понимается большинством программистов на Python как означающая«конкатенация строк любого списка строк», поэтому понятность не должна быть проблемой.