75843


最近Pythonの勉強を始めた初心者です。  
リストに入っている文字列を変数名として扱う方法を教えて頂けると助かります。(自力で検索をしてみたのですが、検索語彙が悪いのか解決出来ませんでした)

具体的には、  
`li = ["inu", "neko", "ushi"]`というリストがあり、

[code]

    inu = "wan"
    neko = "nya"
    ushi = "moo"
    
[/code]

となっている時に、

[code]

    for i in li:
     print(i) 
    
    
    wan
    nya
    moo
    
[/code]

このような動きが出来ればと思っています。  
よろしくお願い致します。


CC BY-SA 4.0
2021-05-14T18:47:12.000
75842
2021-05-18T05:24:08.953
45273
question
python
文字列を変数として扱うにはどうすれば良いのでしょうか?


このような形はどうでしょうか?

[code]

    li = ["inu", "neko", "ushi"]
    inu, neko, ushi = "wan", "nya", "moo"
    for i in li:
      print(eval(i))
    
[/code]

ただこの`eval()`というのはWeb系制作をする際にかなり脆弱性を持った処理となる為、ご質問の様な状況の際は`辞書`を使うことをお勧めします。

辞書は`key`と`value`という2つの値をお互いに関連付ける事が可能であり、今回の場合は以下の形でも実現可能です。

[code]

    li = ["inu", "neko", "ushi"]
    wanwan = ["wan", "nya", "moo"]
    dict = {}
    count = 0
    for i in li:
      dict[li] = wanwan[count]
      count += 1
    
    # dictの中身はこうなっています
    # {"inu":"wan", "neko":"nya", "ushi":"moo"}
    
    for i in dict:
      print(dict[i])
    
[/code]


CC BY-SA 4.0
2021-05-14T18:55:10.507
75843
2021-05-15T02:41:45.137
2021-05-15T02:41:45.137
14101
45142
75842
answer


関数を使わないとてもシンプルな方法としてこのような書き方もあります。

[code]

    li = ["inu", "neko", "ushi"]
    li2 = ["wan", "nya", "moo"]
    li = li2
    
    for i in li:
        print(i)
    
[/code]


CC BY-SA 4.0
2021-05-18T05:24:08.953
75913
2021-05-18T05:24:08.953
45367
75842
answer