0

このコードをどのように簡略化できますか?それが問題です。

    stat_keys.append(self.request.get("stat_one"))
    stat_keys.append(self.request.get("stat_two"))
    stat_keys.append(self.request.get("stat_three"))
    stat_keys.append(self.request.get("stat_four"))
4

4 に答える 4

3
stat_keys += [self.request.get(k) for k in ('stat_one', 'stat_two', 'stat_three', 'stat_four')]

また

stat_keys += map(self.request.get, ('stat_one', 'stat_two', 'stat_three', 'stat_four')))

また

map(stat_keys.append, map(self.request.get, ('stat_one', 'stat_two', 'stat_three', 'stat_four')))

ただし、最初のものをお勧めします。

于 2012-11-26T07:27:00.410 に答える
1

変数が何であるかを知らずに答えるのは難しいですが、これはどうですか?

for stat in ('stat_one', 'stat_two', 'stat_three', 'stat_four'):
    stat_keys.append(self.request.get(stat))

または、ジェネレータ式を使用します。

[stat_keys.append(self.request.get(stat)) for stat in ('stat_one', 'stat_two', 'stat_three', 'stat_four')]
于 2012-11-26T07:26:17.067 に答える
1

.extend()ジェネレータ式でに変更します。

stat_keys.extend(self.request.get(stat) for stat in('stat_one', 'stat_two', 'stat_three', 'stat_four'))
于 2012-11-26T07:31:05.570 に答える
0
s_list = [ "stat_one", "stat_two", "stat_three", "stat_four" ]
[ stat_keys.append(self.request.get(s)) for s in s_list ]
于 2012-11-26T07:31:15.003 に答える