web-dev-qa-db-ja.com

Python型変換

Pythonでint、long、doubleを文字列に、またはその逆に変換するための最良の方法は何ですか。

私はリストをループして、Unicode文字列に変換する必要があるdictにlongを渡します。

私がやります

for n in l:  
    {'my_key':n[0],'my_other_key':n[1]}

なぜ最も明白なもののいくつかがそれほど複雑なのですか?

10
Dave

Python 2.x:

>>> l = ((1,2),(3,4))
>>> dict(map(lambda n: (n[0], unicode(n[1])), l))
{1: u'2', 3: u'4'}

またはPython 3.x:

>>> l = ((1,2),(3,4))
>>> {n[0] : str(n[1]) for n in l}
{1: '2', 3: '4'}

Python 3の文字列は、Python 2のUnicode文字列と同じであることに注意してください。

2
AndiDog

数値型から文字列に変換するには:

str(100)

文字列からintに変換するには:

int("100")

文字列からフロートに変換するには:

float("100")
37
Mark Byers

あなたはこのようにそれを行うことができます

for n in l:
    {'my_key':unicode(n[0]),'my_other_key':unicode(n[1])}

キー/値が2つまたは3つしかない場合は、おそらくこれはより明確です。

for my_value, my_other_value in l:
    {'my_key':unicode(my_value),'my_other_key':unicode(my_other_value)}

キー/値が3つ以上ある場合はこれが良いと思います

for n in l:
    dict(Zip(('my_key','myother_key'),map(unicode,n)))
0
John La Rooy