回答
假設你的主目錄是:your_arr
,並且多串名單:multiple
:
def find_multiple_substring(your_arr, multiple):
res = [i for i, item in enumerate(your_arr) if all(x in item for x in multiple)]
return res[0] if res else -1
你會稱其爲:
x = ["pink-one", "pink-two", "pink-three", "pink-four"]
y = ["pink", "one"] # For a search to be successful, all of these
# strings should be present in `x`.
find_multiple_substring(x, y) # returns 0
您的方法比其他方法更快嗎?如果是這樣,你介意解釋學習的邏輯嗎?預先感謝您 –
它在O(mn)中運行,並且與其他人發佈的答案非常相似,如果這可以回答您的問題。 – SuperSaiyan
如何從一個新的方法繼承list
類?
class DualIndexList(list):
def dual_index(lst, first, second):
for ix, l in enumerate(lst):
if first in l and second in l:
return ix
return -1
mylist = DualIndexList(["pink-one", "pink-two", "pink-three", "pink-four"])
print mylist.dual_index("pink", "one")
結果:0
你也讓這個無限擴展:
class NthIndexList(list):
def nth_index(lst, *args):
for ix, l in enumerate(lst):
count = 0
arglength = len(args)
for arg in args:
if arg in l:
count += 1
else:
continue
if count == arglength:
return ix
return -1
mylist = NthIndexList(["pink-one-a", "pink-two-b", "pink-three-c", "pink-four-d"])
print mylist.nth_index("pink", "one", "a")
結果:0
它不適用於整數列表嗎?如何將列表中的每個元素轉換爲字符串? –
您可以將列表項轉換爲如下字符串:'newlist = [str(i)for my oldlist]' – JacobIRR
你可以做一個列表理解來回饋所有這些情況:
>>> a = ["pink-one", "pink-two", "pink-three", "pink-four"]
>>> q = "one"
>>> sub_indices = lambda query,lib: [i for i,x in enumerate(lib) if query in x]
>>> sub_indices(q,a)
[0]
>>>
如果要將其分配給名稱,請不要使用'lambda'。今天'lambda'的全部內容是創建* anonymous *函數。在這種情況下使用'def'語句。 –
但它非常緊湊,如果你只需要它一兩次就可以了。 – knurzl
@knurzl明確反對PEP8。但做你想做的 –
我覺得如果你只是將是最簡單的方法想匹配第一個結果:
lst = [「pink-one」, 「pink-two」, 「pink-three」, 「pink-four」]
print(lst.index([x for x in lst if 'one' in x][0]))
另一個選項是lambda:
print(list(filter(lambda x: 'one' in x, lst))[0])
找到包含您正在查找的子字符串的一個索引或所有索引(索引)的有效方法。
def index_with_substrings(l, substrings):
return next(indexes_with_substrings(l, substrings), None)
def indexes_with_substrings(l, substrings):
for i, element in enumerate(l):
if all(substring in element for substring in substrings):
yield i
raise StopIteration()
l = ['pink-one', 'pink-two', 'pink-three', 'pink-four']
print(index_with_substrings(l, ['pink', 'one'])) # 0
print(index_with_substrings(l, ['pink', 'three'])) # 2
print(index_with_substrings(l, ['pink', 'five'])) # None
print(list(indexes_with_substrings(l, ['pink']))) # [0, 1, 2, 3]
<script src="//repl.it/embed/ITuU/0.js"></script>
- 1. 如何索引二維數組與字符串的索引
- 2. 作爲數組索引的字符串
- 3. 的Javascript字符串數組索引
- 4. 如何遞減字符串數組中行的索引?
- 5. 如何將字符串拆分爲索引中的數組?
- 6. 如何查找字符串數組中ArrayList項的索引
- 7. 如何在PHP中的字符串內定義數組索引?
- 8. 如何查找數組中指定字符串的索引?
- 9. 如何在C++數組中使用字符串索引(如php)?
- 10. 如何在數組中添加新字符串索引
- 11. 如何索引字符串中的值
- 12. PHP數組字符串鍵索引
- 13. 數組字符串多維索引
- 14. 字符串數組索引錯誤
- 15. 語法字符串VS數組索引
- 16. 子字符串數組索引問題
- 17. 如何獲取字符串數組中字符的索引位置
- 18. 如何打印出字符串索引字符串中字符串的字符
- 19. 如何打印字符串的偶數索引和奇數索引字符?
- 20. 檢索數組中包含的子字符串的索引
- 21. PHP數組:整數索引VS字符串索引
- 22. 如何將字符串插入字符串數組中的特定索引並在其後移動字符串?
- 23. 如何訪問PHP數組的字符串索引元素?
- 24. 如何替換數組索引上的字符串?
- 25. 如何將字符串值分配給php數組的索引?
- 26. 字符串數組索引值::字符串問題
- 27. 通過數組中的索引引用靜態字符串?
- 28. 如何搜索字符串/字符數組中的模式?
- 29. 快速搜索數組中的字符串並返回索引
- 30. 如何顯示字符串數組,但選擇數組中字符串索引的形式
爲什麼你與Python 2程序,而不是3? – knurzl
@knurzl - 那又是怎麼一回事? –
@knurzl你是什麼意思?有人比其他人更好嗎? –