次の2つの変数があります。
a = "1"
b = "21"
とリスト:
['a', 'b', '3', '4', '5', '64']
次のように、変数名をリスト内の値に置き換えるにはどうすればよいですか。
['1', '21', '3', '4', '5', '64']
次の2つの変数があります。
a = "1"
b = "21"
とリスト:
['a', 'b', '3', '4', '5', '64']
次のように、変数名をリスト内の値に置き換えるにはどうすればよいですか。
['1', '21', '3', '4', '5', '64']
文字列ではなく、変数の名前を指定するだけでよいという意味ではないと思いますか?
次のような「怪物」を行うことができます。
a = '1'
b = '21'
els = ['a', 'b', '3', '4', '5', '64']
print [vars().get(el, el) for el in els]
# ['1', '21', '3', '4', '5', '64']
しかし、あなたがそれをしている、またはそれをしようと考えている状況にあるなら、それはもう一度考える時です
最初に検索用の辞書を作成しますか?
lookup = {'a':'1', 'b':'21'}
その後、あなたは行ってもいいです:
print [lookup[x] if x in lookup else x for x in c ]
['1', '21', '3', '4', '5', '64']
引用符を削除するだけです。
a = "1"
b = "21"
[a, b, "3", "4", "5", "64"]
出力は次のようになります["1", "21", "3", "4", "5", "64"]
他の回答の代わりにeval
、変数名がリスト内の文字列として存在する必要がある場合に使用できます。あなたの例では、次のコードです。
eval(list[0])
1と評価されlist
ます(リストの変数が提供されている場合)。
ただし、変数が存在しない場合は。をスローしNameError
、文字列、バイト、またはコードオブジェクトを渡さない場合は、をスローするため、注意が必要ですTypeError
。