Python 查找包含特定字符的列表中字符串的索引

Python 查找包含特定字符的列表中字符串的索引,python,indexing,Python,Indexing,我对Python非常陌生,但我有一个谷歌还没有为我解决的问题。我有一个字符串列表(f_list)。我想生成一个包含特定字符(“>”)的字符串标记列表 例如: f_list=['>EntryA',EntryB'>EntryC',EntryD] 我想提出: 索引列表=[0,2] 这段代码可以工作,但我必须为Value输入字符串的确切名称(即>EntryA)。如果我输入'>'(如下面代码示例中所示),它在index_列表中不会返回任何值 f_list = ['>EntryA', 'Ent

我对Python非常陌生,但我有一个谷歌还没有为我解决的问题。我有一个字符串列表(f_list)。我想生成一个包含特定字符(“>”)的字符串标记列表

例如: f_list=['>EntryA',EntryB'>EntryC',EntryD]

我想提出: 索引列表=[0,2]

这段代码可以工作,但我必须为Value输入字符串的确切名称(即>EntryA)。如果我输入'>'(如下面代码示例中所示),它在index_列表中不会返回任何值

    f_list = ['>EntryA', 'EntryB', '>EntryC', 'EntryD']
    index_list = []

    def all_indices(v, qlist):
        idx = -1
        while True:
            try:
                idx = qlist.find(v, idx+1)
                index_list.append(idx)
            except ValueError:
                break
        return index_list

    all_indices('>', f_list)
    print(index_list)

如果您使用索引,您的功能是:

>>> f_list = ['>EntryA', 'EntryB', '>EntryC', 'EntryD']
>>> for i, j in enumerate(f_list):
...     if '>' in j:
...         print i
... 
0
2
>>> def all_indices(v, qlist):
...     return [i for i, j in enumerate(f_list) if '>' in j]
...
>>> all_indices('>', f_list)
[0, 2]
在函数中:

>>> f_list = ['>EntryA', 'EntryB', '>EntryC', 'EntryD']
>>> for i, j in enumerate(f_list):
...     if '>' in j:
...         print i
... 
0
2
>>> def all_indices(v, qlist):
...     return [i for i, j in enumerate(f_list) if '>' in j]
...
>>> all_indices('>', f_list)
[0, 2]

如果您使用索引,您的功能是:

>>> f_list = ['>EntryA', 'EntryB', '>EntryC', 'EntryD']
>>> for i, j in enumerate(f_list):
...     if '>' in j:
...         print i
... 
0
2
>>> def all_indices(v, qlist):
...     return [i for i, j in enumerate(f_list) if '>' in j]
...
>>> all_indices('>', f_list)
[0, 2]
在函数中:

>>> f_list = ['>EntryA', 'EntryB', '>EntryC', 'EntryD']
>>> for i, j in enumerate(f_list):
...     if '>' in j:
...         print i
... 
0
2
>>> def all_indices(v, qlist):
...     return [i for i, j in enumerate(f_list) if '>' in j]
...
>>> all_indices('>', f_list)
[0, 2]

您可以使用筛选器查找字符串:

>>> f_list = ['>EntryA', 'EntryB', '>EntryC', 'EntryD']
>>> filter(lambda s: '>' in s, f_list)
['>EntryA', '>EntryC']
或者使用列表理解来查找索引:

>>> [i for i, s in enumerate(f_list) if '>' in s]
[0, 2]
或者,您可以通过以下两种方式找到:

>>> filter(lambda s: '>' in s[1], enumerate(f_list))
[(0, '>EntryA'), (2, '>EntryC')]

>>> [(i, s) for i, s in enumerate(f_list) if '>' in s]
[(0, '>EntryA'), (2, '>EntryC')]

您可以使用筛选器查找字符串:

>>> f_list = ['>EntryA', 'EntryB', '>EntryC', 'EntryD']
>>> filter(lambda s: '>' in s, f_list)
['>EntryA', '>EntryC']
或者使用列表理解来查找索引:

>>> [i for i, s in enumerate(f_list) if '>' in s]
[0, 2]
或者,您可以通过以下两种方式找到:

>>> filter(lambda s: '>' in s[1], enumerate(f_list))
[(0, '>EntryA'), (2, '>EntryC')]

>>> [(i, s) for i, s in enumerate(f_list) if '>' in s]
[(0, '>EntryA'), (2, '>EntryC')]

谢谢你的帮助。这正是我所需要的,比我所做的要容易得多@不客气!别忘了接受答案!谢谢你的帮助。这正是我所需要的,比我所做的要容易得多@不客气!别忘了接受答案!