在Python中匹配数字模式的方法

use*_*531 2 python

我是Python的新手,我想知道是否有一种方法可以使用基于数字模式的条件语句.例如,如果我有一个数值列表,例如:

583201
584068
485027
581047
Run Code Online (Sandbox Code Playgroud)

我正在根据这些数字向变量"x"输出一个值,如何将值1分配给以"58"开头的所有值?

我试过这个:

import re

def Classify(SIC12):
   if re.search(7389*,SIC12):
       return 1
   else:
       return 0
Run Code Online (Sandbox Code Playgroud)

但看起来搜索功能仅适用于字符串.有没有办法做这样的事情?

Nac*_*cho 6

您需要使用str()将数字转换为字符串:

def classify(number):
    num_str = str(number)
    if num_str.startswith("58"):
        return 1
    return 0
Run Code Online (Sandbox Code Playgroud)

对于更复杂的测试用例,您可能需要使用正则表达式,但是如果没有它们,您可以完成特定的示例(不确定这是否更可取).

编辑:删除了一些非常不合适的分号.