TypeError: object of type 'generator' has no len()

memo:

区切り文字で区切られた値を連結して文字列を作成するには、 str.join が最適

これにより、使用しているイテラブルの長さについて考える必要がなくなります。一般にpythonはほとんどの場合そうです。反復可能オブジェクトを反復処理する場合はfor x in iterable:を使用します。インデックスが必要な場合は enumerate :

for i, x in enumerate(iterable):