0

私は、コンテキスト内で可能なリスト内包表記のすべての反復を試みてきました。

データベースから呼び出しを受けて、それを のリストに変換しています[['item', long integer]]

残りの数学は通常の積分であるため、長整数を通常の整数に変換したいと思います。

私はこれを試しています:

catnum = c.fetchall()
catnum = [list(x) for x in catnum]
for x in catnum:
        [int(y) for y in x]

また、x[1]、およびその他のいくつかのことを試しました(常にリスト内の位置1にあります)

運がない。リストの 2 番目の値だけを通常の整数に変換するにはどうすればよいですか?

4

2 に答える 2

2

これは機能しますか?

catnum=[[x,int(y)] for x,y in catnum]

しかし、なぜこの変換を行う必要があるのか​​を尋ねる価値があると思います。Python は、通常の整数が機能する場所ならどこでも long 整数を適切に処理する必要があります。それらを long int のままにしておくとパフォーマンスがわずかに低下しますが、ほとんどの場合、通常の整数に変換するための余分な作業が正当化されるとは思いません。

コメントを読んでいる人のために編集 してください。私の最初の答えは間違っていて、リストの理解を必要としませんでした。catnum の要素の変更に依存していましたが、これらの要素はタプルに含まれているため変更できません。

于 2012-07-13T22:32:02.627 に答える
1
[[x[0],int(x[1])] for x in catnum]

これは、名前の最初のエントリと 2 番目のエントリが通常の整数にキャストされた値であるリストのリストを返します。

于 2012-07-13T22:33:36.090 に答える