質問

Pythonは、きちんとしたショートカットでいっぱいです。

例えば:

self.data = map(lambda x: list(x), data)

そして(それほどきれいではありませんが)

tuple(t[0] for t in self.result if t[0] != 'mysql' and t[0] != 'information_schema')

無数の他の人の中で。

IRCチャネルで、彼らは「それらすべてを知るには多すぎる」と言った。

これらのショートカットを使用してコードを短くして参照するのが大好きなので、ここにリストする必要があると思います。これは多くの利益になると確信しています。

役に立ちましたか?

解決

self.data = map(lambda x: list(x), data)

ドレックです - 使用

self.data = map(list, data)

あなたが map 狂信者(最近では、リストの包括的なものが一般的に推奨されています)。より一般的には、 lambda x: somecallable(x) できる いつも 生産的に変更されます somecallable, 、 の 毎日 コンテキスト、良い効果しかありません。

一般的なショートカットに関しては、妻と私は、Python Cookbookの第2版の初期の部分で最も重要で有用なものをリストするために最善を尽くしました。

他のヒント

Alex Martelliは、最初の例のさらに短いバージョンを提供しました。私はあなたの2番目の(わずかに)短いバージョンを提供します:

tuple(t[0] for t in self.result if t[0] not in ('mysql', 'information_schema'))

明らかに、テストする値が多いほど、オペレーターはより有利になります。

また、短縮とリファクタリングは、明快さと読みやすさを向上させる程度にのみ良いことを強調したいと思います。 (あなたがコードゴルフィングでない限り。;;)

これがショートカットなかどうかはわかりませんが、私はそれが大好きです:

>>> class Enum(object):
        def __init__(self, *keys):
            self.keys = keys
            self.__dict__.update(zip(keys, range(len(keys))))
        def value(self, key):
            return self.keys.index(key)          

>>> colors = Enum("Red", "Blue", "Green", "Yellow", "Purple")
>>> colors.keys
('Red', 'Blue', 'Green', 'Yellow', 'Purple')
>>> colors.Green
2

(誰がこれを思いついたのかわかりませんが、それは私ではありませんでした。)

私はいつも「Unzip」イディオムが好きでした:

>>> zipped = [('a', 1), ('b', 2), ('c', 3)]
>>> zip(*zipped)
[('a', 'b', 'c'), (1, 2, 3)]
>>> 
>>> l,n = zip(*zipped)
>>> l
('a', 'b', 'c')
>>> n
(1, 2, 3)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top