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

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

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

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

Q&A

2回答

631閲覧

動的に変数を取得する方法について

oitamasan

総合スコア0

Python

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

1グッド

0クリップ

投稿2023/06/15 04:59

編集2023/06/15 05:01

実現したいこと

・関数内で動的に取得した変数を外部で使用したい。

前提

pythonで動的に変数を取得し、外部にて用いる方法を知りたい。
以下コードで定義した変数A0~A10をエクセルなどの外部ファイルに出力を行いたいがためにリスト化を行ったが、
最下文のA=【A0、A1...】のように動的に変数をリスト化できず、手打ちでA0~A10をリスト化させる方法しか思い浮かばないため、動的にA0~A10までをリスト化する方法はないでしょうか?

該当のソースコード

python ソースコード def test(hensu,num): for i in range(num): a = i + 1 hn = hensu + str(i) globals()[hn] = a test('A',10) A = [A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] print(A) 出力結果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
quickquipを押しています

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2023/06/15 05:17

そもそもA0~A10のような変数を動的に作りたい理由は? 例えばディクショナリを使えば似たようなことができる hoge = {} key = "A1" hoge[key] = "000" print(hoge) →{'A1': '000'} print(hoge["A1"]) →000 という実装ができる
melian

2023/06/15 05:30

リストを返せばよい様な。 def test(num):  return [i + 1 for i in range(num)] if __name__ == '__main__':  A = test(10)  print(A)
退会済みユーザー

退会済みユーザー

2023/06/15 05:39

申し訳ない [A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] と言うコード自体を動的に生成したいと言うことか 正直これにどれだけ意味があるのか分からないが、 初学者としては実現出来ないと理解しておくほうが良いだろう test関数で先ほど書いたようなディクショナリを返すように実装すれば十分 def test(key, num): retvalue = {} for i in range(num): a = i + 1 hensu = key + str(i) retvalue[hensu] = a return retvalue print(test("A", 10)) →{'A0': 1, 'A1': 2, 'A2': 3, 'A3': 4, 'A4': 5, 'A5': 6, 'A6': 7, 'A7': 8, 'A8': 9, 'A9': 10} print(list(test("A", 10).values())) →[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
TakaiY

2023/06/15 05:40

他の方の質問と同じですが > 最下文のA=【A0、A1...】のように動的に変数をリスト化 とはどういう意味ですか? どのようなことがしたいのですか? pythonでは通常「変数そのものをリストに入れる」ことはできません。
quickquip

2023/06/15 06:15

「なんのために」という情報がないと「辞書やリストを素直に使うべき」以外の回答はでてこないと思います。(「辞書やリストを素直に使う方がまとも」な話なので、「なんのために」という情報があっても「それはやめるべき」になりそうではありますが……)
guest

回答2

0

関数内とは逆に globals() 使って変数の値を取り出すという方法もあります。

Python

1def test(hensu, num): 2 for i in range(num): 3 globals()[hensu + str(i)] = i + 1 4 5 6test('A', 10) 7A = [globals()['A' + str(i)] for i in range(10)] 8print(A) 9# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

投稿2023/07/02 05:46

little_street

総合スコア437

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

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

0

手打ちでA0~A10をリスト化させる方法しか思い浮かばないため

test内でリスト化すればよいのでは?

Python

1def test(hensu,num): 2 t = [] 3 for i in range(num): 4 a = i + 1 5 hn = hensu + str(i) 6 globals()[hn] = a 7 t.append(a) 8 globals()[hensu] = t 9 10test('A',10) 11print(A)

投稿2023/06/15 08:16

kazuma-s

総合スコア8222

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問