我想知道如果你只有一部分,你会如何找到列表中元素的索引。例如Python索引索引寻找
list = ["this", "is", "an", "example", "for", "python"]
如果你只有"pyt"
并且需要python索引,你会如何找到它?
我想知道如果你只有一部分,你会如何找到列表中元素的索引。例如Python索引索引寻找
list = ["this", "is", "an", "example", "for", "python"]
如果你只有"pyt"
并且需要python索引,你会如何找到它?
直白的循环:
def find_starts(val, my_list):
for i, v in my_list:
if v.startswith(val):
return i
(如果没有匹配,那么这将返回None
)。这可以用一个列表理解作出整洁:看this related question了解更多详情。
由于问题不是100%清除,我假设你想找到包含指定字符串的所有项目。
alist = ["this", "is", "an", "example", "for", "python"]
val = 'is'
def find_in_list(alist, val):
res = []
for e, v in enumerate(alist):
if val in v:
res.append(e)
return res
find_in_list(alist, val)
感谢您的帮助,但我在想这个。 [“鲍勃史密斯”,“加里泰勒”]如果我只是给它鲍勃,我将如何找到索引? Thx –
alist = [“鲍勃史密斯”,“加里泰勒”] val ='鲍勃' – Richy
亲爱的@Richy这不工作,因为鲍勃是不是整个元素任何方式来解决它? –
你有难同当一些元素是相似的工作解决工作(例如["foo", "asd", "foobar"]
,你有"foo"
什么会作为正确的元素被检测到?)
给定函数会返回一个列表的指数,这些指数被确定为正确的因素。
def find(foo, list):
#Find similar elements
similarElements = [e for e in list if foo in e]
#Find their indexes
indexes = [similarElements.index(i) for i in similarElements]
return indexes
这个解决方案不是最快的方法,而是一个容易理解的方法。
>>> list = ["this", "is", "an", "example", "for", "python"]
>>> word = "python"
>>> y = [i for i,j in enumerate(list) if j == word]
>>> y
[5]
但是,这是为了整个词,试试这也是。
>>> word = "py"
>>> for w in list:
... if word in w:
... sus.append(w)
... print(sus)
...
['python']
这取决于你想如何决定一场比赛。例如,“匹配”是“或”这个“还是两者? – user2699
as @ user2699提到,你期待什么样的结果:只有第一个匹配元素的索引或所有匹配的索引列表? – RomanPerekhrest