我想知道给定的字符串是否以列表中的某些字符串开头。
p1 = ["I2101", "I222", "I7102", "I252"]
g1 = ["I21", "I22", "I252"]
g2 = ["I71"]
for p in p1:
if p in g1:
print("grupo1")
elif p in g2:
print("grupo2")
它应该显示grupo1,grupo1,grupo2,grupo1,但它只能与I252一起使用,因为它与g1 [2]相同
答案 0 :(得分:2)
p1 = ["I2101", "I222", "I7102", "I252"]
g1 = ["I21", "I22", "I252"]
g2 = ["I71"]
for p in p1:
if any(p.startswith(g) for g in g1):
print('{}: Grupo 1'.format(p))
elif any(p.startswith(g) for g in g2):
print('{}: Grupo 2'.format(p))
打印:
I2101: Grupo 1
I222: Grupo 1
I7102: Grupo 2
I252: Grupo 1
编辑(替代版本):
g = [(k, 'Grupo 1') for k in g1] + [(k, 'Grupo 2') for k in g2]
print([v[1] for p in p1 for v in g if p.startswith(v[0])])
打印:
['Grupo 1', 'Grupo 1', 'Grupo 2', 'Grupo 1']