Py学习  »  Python

在ArcGIS Pro中,写python,需要字符串按顺序编号,第1个a,第2个b..z,下一个aa,ab..az,ba,bb

GISAI • 8 月前 • 273 次点击  

def auto_letter_number():

    """基于行号自动生成字母编号"""

    global rec

    rec += 1

    n = rec

    result = ""

    while n > 0:

        n, remainder = divmod(n - 1, 26)

        result = chr(97 + remainder) + result

    return result


# 初始化计数器(在预逻辑脚本代码中)

rec = 0


# 在字段计算器中调用

auto_letter_number()

  1. 方法二(基于行号自动生成):

  • 在字段计算器中选择Python解析器

  • 将第二个代码块中的auto_letter_number()函数复制到"预逻辑脚本代码"区域

  • 在"表达式"框中输入:auto_letter_number()

示例结果:

  • 1 → "a"

  • 2 → "b"

  • ...

  • 26 → "z"

  • 27 → "aa"

  • 28 → "ab"

  • ...

  • 52 → "az"

  • 53 → "ba"

  • 54 → "bb"

  • ...

注意事项:

  • 这种方法支持非常大的数字(理论上可以到任意大)

  • 编号从1开始(1=a),如果你需要从0开始,需要调整计算逻辑

  • 确保在字段计算器中选择Python作为解析语言




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/187020