作者jordan0740 (锋仔)
看板Python
标题Re: [问题] Python新手 for回圈问题
时间Wed Jun 12 16:29:12 2019
※ 引述《a172545056 (Leon)》之铭言:
: 各位前辈大家好,我是刚接触python不久的新人,目前练习到for回圈时有点卡关,想请
: 教一下各位前辈
: 我有三个List
: ListA=[“Apple”,“food”,“Iron”]
: ListB=[“x”,“z”,“on”]
: ListC=[]
: 今天我想知道ListA中的字串是否有包含ListB的字串,有的话ListC.append(“YES”),没
: 有的话ListC.append(“No”),
: 我想得到的结果是ListC[“No”,“No”,“Yes”]
: 小弟目前的做法是
: for a_str in ListA:
: for b_str in ListB:
: if b_str in a_str:
: ListC.append(“Yes”)
: continue
: else:
: ListC.append(“No”)
: 这样子ListC就增加了很多“No”,
: 跟我想要的结果不太一样,
: 想了很久不知道该怎麽做
: 还请各位前辈指点一下,谢谢!
目前想到最有效率的写法
ListA=["Apple","food","Iron"]
ListB=["x","z","on"]
ListC=["No","No","No"]
for i in range(len(ListA)):
if ListB[i] in ListA[i]:
ListC[i] = "Yes"
print(ListC)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.96.208 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1560328154.A.251.html
1F:推 iphone2003: 如果要少行一点 06/12 20:45
2F:→ iphone2003: ListC=[] 06/12 20:45
3F:→ iphone2003: for idx, (a, b) in enumerated(zip(ListA,ListB)): 06/12 20:51
4F:→ iphone2003: if b in a: 06/12 20:51
5F:→ iphone2003: ListC.append('Yes') 06/12 20:51
6F:→ iphone2003: else: 06/12 20:51
7F:→ iphone2003: ListC.append('No') 06/12 20:51
8F:推 a172545056: 谢谢两位前辈指点! 06/13 09:21
9F:推 Conjuror: zip 应该是比较直觉的解,不懂为什麽要 enumerated 06/13 10:07
10F:→ Conjuror: for a, b in zip(ListA, ListB): 06/13 10:07
11F:推 iphone2003: 对...不小心多放了enumerate 06/14 14:25