我如何知道字符串是否以列表中的字符串开头?

时间:2019-06-26 18:15:53

标签: python python-3.x

我想知道给定的字符串是否以列表中的某些字符串开头。

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]相同

1 个答案:

答案 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']