web-dev-qa-db-ja.com

1つの数値を1桁の数字に変換Python

たとえば、43365644などの数字を1つの数字にしたい[4,3,3 ....、4,4]

リストに追加します

20
user3221242

これは、次の場合に非常に簡単に実行できます。

  1. str を使用して、数値を文字列に変換し、繰り返し処理できるようにします。

  2. list comprehension を使用して、文字列を個々の数字に分割します。

  3. int を使用して、数字を整数に戻します。

以下はデモンストレーションです。

>>> n = 43365644
>>> [int(d) for d in str(n)]
[4, 3, 3, 6, 5, 6, 4, 4]
>>>
51
iCodez

最初に文字列に変換せずにそれを行う方法は次のとおりです(初歩的なベンチマークに基づいて、これは最初にnを文字列化するよりも約2倍高速です):

>>> n = 43365644
>>> [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
[4, 3, 3, 6, 5, 6, 4, 4]
11
inspectorG4dget

最も簡単な方法は、intを文字列に変換し、文字列の各文字をリストの要素として使用することです。

>>> n = 43365644 
>>> digits = [int(x) for x in str(n)]
>>> digits
[4, 3, 3, 6, 5, 6, 4, 4]
>>> lst.extend(digits)  # use the extends method if you want to add the list to another

それはいくつかのキャスト操作を伴いますが、極端なパフォーマンスを必要としない場合は読みやすく受け入れられます。

5
Maxime Lorant

番号をそれらの番号のリストに変更する場合は、最初にstringにキャストします。次にリストにキャストすると、各文字で自然に壊れます。

[int(x) for x in str(n)]
2