に「真」/「偽」の要素を変換:更新リスト、私がリストを持っているはず、Pythonで1/0
l = [ 'True', 'False', 'myname', 1, 0, 'foo' ]
と私は文字列'True'
または'False'
を変換したいです1
または0
にするには、これを実行し、値がもともと持っていたインデックスを保持する最良の方法は何ですか?リストの内包表記はあなたの友達です
l = [ 1, 0, 'myname', 1, 0, 'foo' ]
に「真」/「偽」の要素を変換:更新リスト、私がリストを持っているはず、Pythonで1/0
l = [ 'True', 'False', 'myname', 1, 0, 'foo' ]
と私は文字列'True'
または'False'
を変換したいです1
または0
にするには、これを実行し、値がもともと持っていたインデックスを保持する最良の方法は何ですか?リストの内包表記はあなたの友達です
l = [ 1, 0, 'myname', 1, 0, 'foo' ]
:
>>> l = [ 'True', 'False', 'myname', 1, 0, 'foo']
>>> mapping = {"True": 1, "False": 0}
>>> [mapping.get(x, x) for x in l]
'mapping = {" True ":1、" False ":0} .get'で一歩進んだりできます。 –
>>> replace = {'True':1, 'False':0}
>>> my_list = [ 'True', 'False', 'myname', 1, 0, 'foo' ]
>>> [replace.get(e,e) for e in my_list]
[1, 0, 'myname', 1, 0, 'foo']
>>>
思想リストの項目はon
、off
、yes
、no
ある場合、私は、より堅牢なソリューションを提供するであろうように、すなわち出力が見えます(はdocumentationを参照してください)。
from distutils.util import strtobool
def convert_str_to_bool(l):
result = []
for item in l:
try:
result.append(strtobool(item))
except:
result.append(item)
return result
サンプル出力:
>>> l = [ 'True', 'False', 'myname', 1, 0, 'foo' ]
>>> print convert_str_to_bool(l)
[1, 0, 'myname', 1, 0, 'foo']
あなたは
for i in l:
if i == 'True':
a = l.index(i)
b = l.remove(i)
l.insert(a, 1)
elif i == 'False':
a = l.index(i)
b = l.remove(i)
l.insert(a, 0)
print(l)
あなたは真、偽の文字列 'TRUE'、 '偽' はブールもしかしてforループを使用することができますか? – smci