我有一些像下面這樣的 if-else 陳述句,基本上它就像魅力一樣,但是條件經常改變,它可以添加更多,....所以我認為 if-else 方式不是優化的。這就是為什么我想知道是否有更好的解決方案來減少為此重復的代碼。
name1, name2, name3, name4, name5 = "David", "Luke", "Kate", "Bobby", "Megan"
sentences = ["Megan is my friend", "Boddy is my friend"]
existed_name = []
for sentence in sentences:
if name1 in sentence:
existed_name.append(name1)
elif name2 in sentence:
existed_name.append(name2)
elif name3 in sentence:
existed_name.append(name3)
elif name4 in sentence:
existed_name.append(name4)
elif name5 in sentence:
existed_name.append(name5)
else:
existed_name.append('Empty')
非常感謝你幫助我。
uj5u.com熱心網友回復:
添加到 Abhinav 的答案中,您可以有一個標志來查看該名稱是否存在。
names = ["David", "Luke", "Kate", "Bobby", "Megan"]
sentences = ["Megan is my friend", "Boddy is my friend"]
for sentence in sentences:
existed = False
for name in names:
if name in sentence:
existed_name.append(name)
existed = True
break
if not existed:
existed_name.append("Empty")
uj5u.com熱心網友回復:
如果您在單個串列中定義所有名稱而不是單獨的變數,則可以為此使用簡單的嵌套回圈。
names = ["David", "Luke", "Kate", "Bobby", "Megan"]
sentences = ["Megan is my friend", "Boddy is my friend"]
existing_names = []
for sentence in sentences:
for name in names:
if name in sentence:
existing_names.append(name)
print(existing_names)
# ["Megan"]
uj5u.com熱心網友回復:
如果您更喜歡一個班輪串列理解
names = ["David", "Luke", "Kate", "Bobby", "Megan"]
sentences = ["Megan is my friend", "Boddy is my friend"]
existed_name = [name for name in names for sentence in sentences if name in sentence]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/430526.html
上一篇:當我在recyclerview串列中搜索時,它會將專案洗掉到原始recyclerview串列中
下一篇:表視圖單元格沒有初始化器
