もしあなたがその一部しか持っていなければ、リスト内のある要素のインデックスをどう見つけるのだろうと思いました。たとえば、インデックス付きのPythonリストの検索
list = ["this", "is", "an", "example", "for", "python"]
"pyt"
があり、インデックスが必要な場合はどうすれば見つけますか? forループ
もしあなたがその一部しか持っていなければ、リスト内のある要素のインデックスをどう見つけるのだろうと思いました。たとえば、インデックス付きのPythonリストの検索
list = ["this", "is", "an", "example", "for", "python"]
"pyt"
があり、インデックスが必要な場合はどうすれば見つけますか? forループ
わかりやすい:
は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)
しかし、助けてくれてありがとう、私はこれを考えていた。 ["Bob smith"、 "Garry Taylor"]もし私がちょうどそれを与えたら、私はインデックスを見つけるだろうか??? Thob –
alist = ["Bob smith"、 "Garry Taylor"] val = 'Bob' – 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']
どのようにマッチを決定するかによって異なります。例えば、is is is is "is"と "this"の両方にマッチするか? – user2699
@ user2699が述べたように、どのような結果が期待されますか?最初に一致した要素のインデックスまたはすべての一致によるインデックスのリストのみですか? – RomanPerekhrest