( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

10分間でコーディング(Python編)

10分でコーディング|プログラミングに自信があるやつこい!!に挑戦。
ただし、Pythonかつワンライナーで。


結果。lを人数、sをカードの文字列として、

s and ["".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []


実行結果。

>>> l = 3
>>> s = "123123123"
>>> s and  [ "".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []
['111', '222', '333']
>>>
>>> l = 4
>>> s and  [ "".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []
['12', '23', '31', '12']
>>>
>>> l = 6
>>> s = "012345012345012345"
>>> s and  [ "".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []
['000', '111', '222', '333', '444', '555']
>>>
>>> l = 4
>>> s = "111122223333"
>>> s and  [ "".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []
['123', '123', '123', '123']
>>>
>>> l = 1
>>> s = "012345012345012345"
>>> s and  [ "".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []
['012345012345012345']
>>>
>>> l = 6
>>> s = "01234"
>>> s and  [ "".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []
['', '', '', '', '', '']
>>>
>>> l = 2
>>> s = ""
>>> s and  [ "".join([c for c in s][i::l][:len(s)/l]) for i in range(0,l)] or []
[]

7,8分くらいだった。


10分コーディングしてみた。 - When it’s ready. (a2c.get.diary)
↑こっちのほうが断然エレガントでした。


まだまだpython力が足りてませぬっ・・・!