我有多个看起来像这样的字符串:
“BPBA-SG790-NGTP-W-AU-BUN-3Y”
我想将字符串与列表进行比较,如果字符串的一部分在列表中,我只想将列表中找到的部分作为新变量。
这是我的代码:
mylist = ["770", "790", "1470", "1490"]
sq = “BPBA-SG790-NGTP-W-AU-BUN-3Y”
matching = [s for s in mylist if any(xs in s for xs in sq)]
print(matching)
>>> ['770', '790', '1470', '1490']
例如,这就是我想要得到的:
mylist = ["770", "790", "1470", "1490"]
sq = “BPBA-SG790-NGTP-W-AU-BUN-3Y”
matching = [s for s in mylist if any(xs in s for xs in sq)]
print(matching)
>>> 790
有什么想法吗?
答案 0 :(得分:3)
像这样,您可以使用列表理解:
mylist = ["770", "790", "1470", "1490"]
sq = "BPBA-SG790-NGTP-W-AU-BUN-3Y"
matching = [m for m in mylist if m in sq]
print(matching)
输出:
['790']
答案 1 :(得分:2)
您可以在python中使用in
关键字:
mylist = ["770", "790", "1470", "1490"]
sq = "BPBA-SG790-NGTP-W-AU-BUN-3Y"
for i in mylist:
if i in sq:
print(i)
代码遍历列表,并在字符串中打印列表元素
答案 2 :(得分:0)
不确定我是否收到您的问题,但是以下方法可以解决问题
[x for x in mylist if x in sq]
它将为您返回出现在字符串中的列表中那些元素的列表
答案 3 :(得分:0)
尝试
mylist = ["770", "790", "1470", "1490"]
sq = "BPBA-SG790-NGTP-W-AU-BUN-3Y"
b = [x for x in mylist if sq.find(x) != -1]
print b
答案 4 :(得分:-1)
[s for s in mylist if s in sq]
对于不喜欢简洁的人:
这是一个列表理解。计算得出s
中满足谓词mylist
的字符串s in sq
的列表(即s
是sq
的子字符串)。