455

次のような MySQL クエリからのタプルのタプルがあります。

T1 = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))

すべての文字列要素を整数に変換し、それらをリストのリストに戻したいと思います:

T2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]

で達成しようとしましevalたが、まだまともな結果が得られていません。

4

15 に答える 15

17

内包リストのみを使用することをお勧めします。

[[int(y) for y in x] for x in T1]
于 2009-05-12T23:33:41.440 に答える
11

putの代わりにint( )putfloat( )を使用すると、整数とともに小数を使用できます。

于 2014-01-24T22:56:32.900 に答える
10

これまでのところ、皆さんの回答に同意しますが、問題は、すべての整数がないとクラッシュすることです。

非整数を除外したい場合は

T1 = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))
new_list = list(list(int(a) for a in b) for b in T1 if a.isdigit())

これにより、実際の桁のみが生成されます。直接リスト内包表記を使用しない理由は、リスト内包表記が内部変数をリークするためです。

于 2009-03-13T14:05:10.867 に答える
8
T3=[]

for i in range(0,len(T1)):
    T3.append([])
    for j in range(0,len(T1[i])):
        b=int(T1[i][j])
        T3[i].append(b)

print T3
于 2011-03-24T22:53:40.640 に答える
2

Python 3.5.1 では、次のようなものが機能します。

c = input('Enter number:')
print (int(float(c)))
print (round(float(c)))

Enter number:  4.7
4
5

ジョージ。

于 2016-05-27T17:17:22.480 に答える