2

トピックが述べているように:

list = ["a", "b"]

element = "ac"

使用できますか:

if element in list: 

要素が (list + "c") の要素と等しい場合

私が達成したいことへの疑似コード:

if element in (list+c)

Pythonでこの動作を取得する最良の方法は何ですか?

編集:これを回避する方法はたくさんありますが、上記のコードのように 1 行で実行できますか?

4

4 に答える 4

6

より効率的なのは次のとおりです。

if any(x+'c' == element for x in your_list):

リストを2回スキャンするのを避けるためです(1回目は「+c」バージョンを作成するため、1回目は要素が結果のリストにあるかどうかを確認するためです)。また、リスト全体を調べる前に要素が見つかった場合は、「短絡」します (つまり、すぐに移動します)。


PS - 変数に名前を付けないのが最善です。listこれは、実際のリストタイプの名前であるからです。

于 2012-04-05T05:11:58.347 に答える
1
if element in [elem + 'c' for elem in my_list]:
    # ...

これらの組み込み型が失われているため、変数 (または、、、、など) を呼び出すことはお勧めlistできintません。floatmaptuple

于 2012-04-05T05:11:04.430 に答える
0
if element[:-1] in list:

「c」なしで要素を計算することをお勧めします。したがって、計算は 1 つだけです。

于 2012-04-05T06:27:42.523 に答える
0
if element[0] in list:

リスト内のすべての項目に追加"c"して、結果に含まれているかどうかを確認する必要はありません"ac"。の最初の文字がリストにあるかどうかを確認します"ac"。はるかに簡単であることを除けば、同じことです。

于 2012-04-05T06:14:00.237 に答える