Я пытаюсь найти простой способ добавить точку .
к каждой цифре 3 в виде строки ('43434' -> '43.434
), и я нашел интересное применение присоединиться к этой задаче:Python .join() итерация строка
num = '1234567'
new_num = '.'.join(num[i:i+3] for i in range(0, len(num), 3))
# new_num = 123.456.7'
Ну его близко к тому, что я хочу. Это то, что я хочу:
(its need to be `'1.234.567'`)
Почему это так работает? Когда я использую нарезку на соединение, он добавляет дополнение для каждого элемента:
num = '2333'
>>> '.'.join(num[0:2])
<<< '2.3'
>>> '.'.join(num[0:3])
<<< '2.3.3'
Я где-то читал, что его называют струна как итерацию концепции. Может кто-нибудь помочь мне понять это?
'num [i: i + 3] для i в диапазоне (0, len (num), 3)' - Это [выражение генератора] (http://www.python.org/dev/peps/ PEP-0289 /). Быстрый поиск в Google не показывал хороших новинок для генераторов, поэтому я связал PEP с предложением их введения в язык. – user2357112