質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3604閲覧

Python3 での変数展開を教えて頂けませんでしょうか?

EzrealTrueshot

総合スコア388

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/02/16 05:02

python

1hoge = "123" 2fuga = "455" 3print(" this is {0}. that is {1}.".format(hoge,fuga))

このような形で print文内での展開はいけるのですが、それ以外の場所で展開が出来ず困っております。

例(できない)

for i in range(0,3): a_{0}.format(i) = [ 'りんご', 'みかん', i ]

やりたいことは
a_0
a_1
a_2
と、range内の数だけのリスト(配列)を変数iを接尾名として作成したいのです。

可能ならば教えていただけませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

やりたいことに対する回答になっていないかもしれませんが
以下のように「リストのリスト」で管理したほうが操作しやすいかと思います。

Python

1a = [] 2for i in range(3): 3 a.append( ['apple','orange', i]) 4 5print( a[0]) # [ 'apple', 'orange', 0] 6print( a[1]) # [ 'apple', 'orange', 1] 7print( a[2]) # [ 'apple', 'orange', 2]

投稿2017/02/16 05:36

編集2017/02/16 05:38
can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EzrealTrueshot

2017/02/16 06:21

ありがとうございます! なるほど・・リストのリストですか。 試してみます!
guest

0

ベストアンサー

python

1for i in range(0,3): 2 exec("a_%d = [ 'りんご', 'みかん' ,i]" %i)

ちなみに末尾に連番つけるぐらいならリストにすればいいと思います。


なぜ質問文のコードでできないのか

python

1hoge = "123" 2fuga = "455" 3txt = " this is {0}. that is {1}." 4print(txt.format(hoge,fuga)) # this is 123. that is 455.

からわかるように、.format()文字列データに対して
{n}が出てきたら置き換えるという操作です。
要するにデータに対する操作です。
コードの書き換えではないのです。

投稿2017/02/16 05:18

編集2017/02/16 05:43
ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EzrealTrueshot

2017/02/16 06:20

exec()というのがあるんですね。 ありがとうございます!
ozwk

2017/02/16 06:28 編集

連番を振りたいと言うので、 何かしらあえてリストにしない理由があるのかと思って回答しましたが、 無いのであればリストにした方がいいです。
terapyon

2017/02/20 08:19

exec() で無理やり変数を作ることをしないほうが良いと思う。 変数を動的に作らざる負えない目的から考え直したほうが、良いと思います。
ozwk

2017/02/20 08:22

そうですね。変数を動的に作らざるを得ない状況はおかしいと思いますよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問