我有这个清单
list = ['c', 'h', 'a', 'l', 'l', 'e', 'n', 'g', 'e']
然而,当我调用list.index(" e")时,它只返回第一个索引。有没有办法返回两个索引?
答案 0 :(得分:3)
你可以这样做:
>>> list_ = ['c', 'h', 'a', 'l', 'l', 'e', 'n', 'g', 'e']
>>> [index for index, value in enumerate(list_) if value == 'e']
相当于:
list_ = ['c', 'h', 'a', 'l', 'l', 'e', 'n', 'g', 'e']
result = []
for index, value in enumerate(list_):
if value == 'e:'
result.append(index)
前一个示例(列表推导)比显式for循环更紧凑,更快。这是因为在列表上调用.append()
会导致列表对象增长(以块为单位)以单独为新元素腾出空间,而列表理解在创建列表之前首先收集所有元素以便一次性拟合元素。
作为一个函数,更通用的是,您希望索引的元素可能会发生变化:
def get_all_indexes(list_, element):
return [index for index, value in enumerate(list_) if value == element]
print(get_all_indexes(['c', 'h', 'a', 'l', 'l', 'e', 'n', 'g', 'e'], 'e'))
答案 1 :(得分:2)
我会做这样的事情,使用列表理解,请注意不要使用public void waitForElementPresent(final By by, int timeout){
WebDriverWait wait = (WebDriverWait)new WebDriverWait(driver,timeout)
.ignoring(StaleElementReferenceException.class);
wait.until(new ExpectedCondition<Boolean>(){
@Override
public Boolean apply(WebDriver webDriver) {
WebElement element = webDriver.findElement(by);
return element != null && element.isDisplayed();
}
});
}
作为变量名称:
=DateAdd("d", -1 * (weekday(today()) mod 7 ), today())
答案 2 :(得分:1)
或者你可以使用numpy
import numpy as np
list = ['c', 'h', 'a', 'l', 'l', 'e', 'n', 'g', 'e']
np.where(np.array(list)=="e")
如果你想将它列入清单,你可以使用
np.where(np.array(list)=="e")[0].tolist()
我强烈建议你不要把你的变量关键字叫做list,dict?只需将其命名为my_list或其他名称