38961


最近Python3を勉強し始めた者です。  
標準入力の型の指定に苦戦しております。

入力

[code]

    12345678
    
[/code]

に対して、

[code]

    a[1]=1
    a[2]=2
    a[3]=...
    
[/code]

とするようなコードを考えております。  
過去の質問では、ジェネレータ式による

[code]

    def gen(n):
      if n < 10:
        yield n
      else:
        for m in gen(n/10):
          yield m
        yield n%10
    a = [int(i) for i in gen(数値)]
    
[/code]

というものが提案されており、使用させて頂こうと考えたのですが

[code]

    00012345...
    
[/code]

のような0から始まる数字の場合には使えませんでした。  
int型で0から始まるような数値に対応できるコードを作るにはどうすれば良いでしょうか。

また、応用として任意の`n*m`の行列に対して`a[1...n][1...m]`に代入できるコードももしよろしければ教えていただきたいです。

例:n=2,m=2(入力にはこれらの値の情報なし)

入力

[code]

    12
    34
    
[/code]

挙動

[code]

    a[1][1]=1
    a[2][1]=2
    a[1][2]=3
    a[2][2]=4
    
[/code]

よろしくお願いします。


CC BY-SA 3.0
2017-10-22T15:23:12.397
38960
2017-10-23T00:38:54.853
2017-10-23T00:38:54.853
19110
25869
question
python python3
Python3における数値の分割


なぜインデクスが1から始まっているんですか? ありえません。  
単純な勘違いだと思って0から始まる回答にします。

前者は

[code]

    s = '12345678'
    a = [int(c) for c in s]
    
[/code]

後者は

[code]

    s = ['12', '34']
    
[/code]

という入力に対して

[code]

    a = [[int(c) for c in l] for l in s]
    
[/code]

でどうぞ。

* * *

(追記)  
後者を

[code]

    import sys
    a = [[int(c) for c in l.strip()] for l in sys.stdin]
    
[/code]

と変えると標準入力から読みますよ。


CC BY-SA 3.0
2017-10-22T15:29:15.227
38961
2017-10-22T22:40:23.683
2017-10-22T22:40:23.683
12274
12274
38960
answer