Pythonのお勉強 Part31at TECHPythonのお勉強 Part31 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト28:デフォルトの名無しさん 09/01/03 12:20:06 もしかしてpythonのソースをYAMLだけで書いて exec使わずに実行とか出来るんですか 29:デフォルトの名無しさん 09/01/03 18:02:59 >>28 exec使わずに実行て? 普通、言語のインスペクトではメソッドの中身とか取れないのが普通。 JavaScriptはソースが見れたっけ? Pythonでの話に戻すけど、ソースコードをparserモジュールで構文木にして、 その構文木をソースとして実行とかできるのかな。やってみたことないけど。 30:デフォルトの名無しさん 09/01/03 18:10:04 rubyなら出来ますよ 31:デフォルトの名無しさん 09/01/03 18:12:40 そうだね、神の名はエホバだね。 32:デフォルトの名無しさん 09/01/03 19:02:45 はあ? 33:デフォルトの名無しさん 09/01/03 21:37:30 今、下記のようなリストがあり、 list1 = ['cat', 'dog', 'spam', 'egg'] 下のマップで上記リストを変換したいと思います。 maps = {'animal': ['cat', 'dog']} 結果は以下を期待しています。 ['animal', 'animal', 'spam', 'egg'](あるいは、set(['animal', 'spam', 'egg']) その際、安直に上記を実装した、下のようなコードが思いつきました。 下のコードをmap関数やセット、lambda関数などなんでもいいので標準関数等を駆使して、とにかく短く表現できないか考えています。下記のコードはスマートな方でしょうか? ans = [] for elem in list1: for key, vals in maps.items(): if elem in vals: ans.append(key) else: ans.append(elem) print ans さらに、マップの要素が増えた場合、 maps = {'animal': ['cat', 'dog'],'food':['egg']} 他に、list1 = ['animal', 'spam', 'egg'] をもとにmaps = {'animal': ['cat', 'dog']}を用いて、元が復元できないか考えています。 >> ['cat','dog','spam', 'egg'] どなたかわかりますでしょうか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch