1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

python3で4つごとに区切る。

Posted at

#python3で文字列を4つごとに区切る

番号を羅列したときに4つごとに","で区切るプログラムをとにかく書いてみました。
whileを使って書きました。

#ダメなコード
x=str(input("input"))
y=0
li=[]
while len(x)>= 4:
    li.append(x[y:y+4])
    x=x[4:]
a = ",".join(li)
print(a)

反省点

pythonのコミュニティでいろいろ評価を得たり、考えたりした結果を書いてく。

  • 色々間違えた点としてはinput()にpython3はstr()はいらないっぽい。
  • yの需要がない。
  • あと、今回は必要じゃなかったからいいけど、len(x)が4の倍数じゃないと切り捨てられるから、今回はいいけど致命的でした。
#少しきれいにした
x=input("input")
li=[]
while len(x)>= 4:

    li.append(x[0:4])
    x=x[4:]

a = ",".join(li)
print(a)

そしてなんと、コミュニティのpythonistの先輩の別解は一行。

x=input();print(','.join([x[i:i+4] for i in range(0,len(x),4)]))

これはびっくりでしたね。。
whileじゃなくて、forだったらもっと楽にかけたのかもねぇ、、、

あとはzip関数を使ったやり方も教えてくれました〜。

あとがき

めっちゃ雑でごめんなさい。
今回はいろいろ反省点ありました。
そして、有識者に聞くことは大切ですね。

最後に、まだまだはじめたばかりでpythonも詳しくないので、間違いなどがあったら、コメントください。

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?