我想撰寫一個函式來查找文本中的某些單詞組合并告訴它屬于哪個串列。例子:
my_list1 = ["Peter Parker", "Eddie Brock"]
my_list2 = ["Harry Potter", "Severus Snape", "Dumbledore"]
Example input: "Harry Potter was very sad"
Example output: my_list1
uj5u.com熱心網友回復:
您可以遍歷字串,然后將出現的單詞附加到串列中,然后檢查哪些單詞出現最多以確定整個字串屬于哪個串列:
my_list1 = ["Peter Parker", "Eddie Brock"]
my_list2 = ["Harry Potter", "Severus Snape", "Dumbledore"]
to_check = "Harry Potter was very sad"
def which_list(to_check):
belong_l1 = 0
belong_l2 = 0
for i in to_check:
if i in my_list1:
belong_l1 = 1
elif i in my_list2:
belong_l2 = 1
if belong_l1 > belong_l2:
print("string belongs to list 1")
elif belong_l1 < belong_l2:
print("string belongs to list 2")
else:
print("belonging couldn't be determined")
uj5u.com熱心網友回復:
首先,我會在串列中包含名稱。
lst = (
("list1", ("Peter Parker", "Eddie Brock")),
("list2", ("Harry Potter", "Severus Snape", "Dumbledore")),
("list3", ("Harry Potter",)),
)
while True:
txt = input( "Enter some text: ")
if len(txt) == 0: break
for names in lst:
for name in names[1]:
if name in txt:
print( f"'{name}' found in {names[0]}.")
結果:
Enter some text: Harry Potter was here
'Harry Potter' found in list2.
'Harry Potter' found in list3.
Enter some text: Harry Potter and Dumbledore were here
'Harry Potter' found in list2.
'Dumbledore' found in list2.
'Harry Potter' found in list3.
uj5u.com熱心網友回復:
假設以下資料結構:
lists = {
'my_list1': ["Peter Parker", "Eddie Brock"],
'my_list2': ["Harry Potter", "Severus Snape", "Dumbledore"]
}
這個論點:
arg = "Harry Potter was very sad"
此理解將回傳包含引數中任何關鍵字的所有串列的名稱:
list_names = [
list_name
for list_name, keywords in lists.items()
if any(kw in arg for kw in keywords)
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533913.html
標籤:Python细绳
下一篇:從dart中的給定字串中洗掉\n
