2011-05-18 16 views
1

我有以下代碼片段。我基本上試圖獲得列表中的特定字符串的索引/迭代器(除了知道它是否存在)。這是可能的,或者我應該使用循環與一個,如果?迭代器值在'any()'調用後沒有保留

桶= [ 「阿爾法」, 「測試」, 「伽馬」]

含量= 「」

如果任何(內容== 「試用」 用於桶的內容): 打印內容

有「內容」作爲全球或者乾脆內循環沒有有所作爲

+2

不知道我是否正確理解你。你在尋找'bucket.index(「beta」)嗎? – 2011-05-18 22:11:27

+0

@Sven那正是我所需要的。謝謝! Duh .. – pynewbie 2011-05-18 22:17:16

回答

1

生成器表達式不泄漏迭代器。在2.x列表中理解,但不在3.x中。

1

您正在創建一個發電機爲any通話中進行搜索。你已經離開的發電機是暫時的。也就是說,它只存在於any的調用中,因此您將無法看到它。如果你想它出來的索引位置,然後執行此操作:

item = [x for x in enumerate(bucket) if x[1] == "beta"] 

它生成所有匹配的項目列表加索引。

+0

這不是一個列表理解。 – 2011-05-18 22:09:49

+0

很好,你說得對。 – wheaties 2011-05-18 22:10:55