33

magic以下の関数をどのように記述しますか?

>>> num = 123
>>> lst = magic(num)
>>>
>>> print lst, type(lst)
[1, 2, 3], <type 'list'>
4

11 に答える 11

78

これのことですか?

num = 1234
lst = [int(i) for i in str(num)]
于 2009-04-23T05:22:12.397 に答える
24
a = 123456
b = str(a)
c = []

for digit in b:
    c.append (int(digit))

print c
于 2009-04-23T05:26:02.937 に答える
15

あなたはこれを行うことができます:

>>> num = 123
>>> lst = map(int, str(num))
>>> lst, type(lst)
([1, 2, 3], <type 'list'>)
于 2009-04-23T05:23:15.283 に答える
11
magic = lambda num: map(int, str(num))

その後、

magic(12345) 

また

magic(someInt) #or whatever
于 2009-04-23T06:19:11.950 に答える
8
>>> from collections import deque
>>> def magic(num):
        digits = deque()
        while True:
            num,r = divmod(num,10)
            digits.appendleft(r)
            if num == 0:
                break
        return list(digits)

>>> magic(123)
[1, 2, 3]

私のタイミングによると、このソリューションは、magic2より小さな例であっても、文字列メソッド ( ) よりもかなり高速です。

>>> def magic2(num):
        return [int(i) for i in str(num)]

タイミング:

magic

>>> timeit.timeit(setup='from __main__ import magic', stmt='magic(123)')
1.3874572762508706
>>> timeit.timeit(setup='from __main__ import magic', stmt='magic(999999999)')
3.2624468999981673

magic2

>>> timeit.timeit(setup='from __main__ import magic2', stmt='magic2(123)')
3.693756106896217    
>>> timeit.timeit(setup='from __main__ import magic2', stmt='magic2(999999999)')
10.485281719412114
于 2012-05-06T15:31:04.237 に答える
5

単語リストを変数名として使用しないでください。これは、データ型に組み込まれているpythonの名前です。

また、質問を明確にしてください。1人のメンバーのリストを作成する方法を探している場合は、次のようにします。

a = 123
my_list = [a]

キャノナードの答えを「Python化」します。

a = 123
my_list = [int(d) for d in str(a)]
于 2009-04-23T05:48:21.417 に答える
3
num = map(int, list(str(num)))
于 2015-01-26T03:24:05.747 に答える
-1

使用するだけです:

a= str (num)
lst = list(a)
于 2012-05-06T14:16:33.120 に答える