0

このようなものを考えると:

yesterday = {'facebook_adgroups': [4634L], 'google_third_party_tags': [1790L]}

たまたまリスト/長い形式になっている値を数値に変換して、後で計算を実行できるようにしたいと考えています。いくつかの異なるエラーが発生し続けるか、変更が「取得」されていません。これが私の最後の試みでした:

for k, v in yesterday.iteritems():
    i = 0
    print v[0]
    yesterday.values()[i] = v[0]
    i += 1
4

4 に答える 4

1

次の微調整があなたが求めていることを行うと思います:

値を対応するキーに割り当てるだけで、long特性が保持されます。

yesterday = {'facebook_adgroups': [4634L], 'google_third_party_tags': [1790L]}

for k, v in yesterday.iteritems():
    i = 0
    print v[0]
    yesterday[k] = v[0]
    i += 1

print yesterday

結果は

4634
1790
{'facebook_adgroups': 4634L, 'google_third_party_tags': 1790L}

値にはまだL. しかし、割り当てを変更すると:

yesterday[k] = int(v[0])

出力は次のようになります

{'facebook_adgroups': 4634, 'google_third_party_tags': 1790}

これが「あまりPythonicではない」ことを自由に認めますが、仕事をしているように見えます。

あなたの質問を読み直すと、タイトルに記載されているように質問に答えたように見えますが、よく見ると、これがあなたが苦労していたことであることが明確ではありません。

キーと値のペアから始めた場合、数値インデックスにアクセスしようとすると危険が伴うことを強く警告します。物事はあなたが思っていた順序ではないかもしれません、アイテムが欠落しているかもしれません.欠落した値のデフォルトを使用して、既知の順序で具体的に割り当てない限り、これはいつかうまくいかないでしょう-そしてあなたはバグを見つけるために何時間も探します. . のようなことをした方が良い

yNum[0] = yesterday['facebook_adgroups']
yNum[1] = yesterday['google_third_party_tags']

int()など。タイプを強制したい場合は、おそらくその周りで。

于 2013-10-10T04:45:02.400 に答える
0

あなたの質問の背後にあるポイントを本当に理解できません。しかし、あなたの問題についての私の理解によれば、

yesterday = {'facebook_adgroups': [4634L], 'google_third_party_tags': [1790L]}

for k,v in yesterday.items():
    print '%s : %s' % (k, map(int,v)[0])

for k,v in yesterday.items():
    print '%s : %s' % (k, int(v[0]))  

上記の両方の方法で同じ出力が得られます

出力:

facebook_adgroups : 4634
google_third_party_tags : 1790
facebook_adgroups : 4634
google_third_party_tags : 1790
于 2013-10-10T04:53:03.650 に答える