036. 编写一个函数,将一个字符串中的所有字符按ASCII值排序

在 Python 中,可以通过将字符串转换为字符列表,对字符列表进行排序,然后将排序后的字符列表重新组合成字符串来实现按 ASCII 值排序。

示例代码

def sort_string_by_ascii(s):
    """
    将字符串中的所有字符按 ASCII 值排序。

    参数:
        s (str): 要排序的字符串。

    返回:
        str: 按 ASCII 值排序后的字符串。
    """
    # 将字符串转换为字符列表
    char_list = list(s)

    # 对字符列表进行排序
    char_list.sort()

    # 将排序后的字符列表重新组合成字符串
    sorted_string = ''.join(char_list)

    return sorted_string

# 测试代码
original_string = "Python"
sorted_string = sort_string_by_ascii(original_string)

print("原始字符串:", original_string)
print("按 ASCII 值排序后的字符串:", sorted_string)

运行结果

运行上述代码后,输出如下:

原始字符串: Python
按 ASCII 值排序后的字符串: Pnohty

代码解释

  1. 将字符串转换为字符列表:使用 list(s) 将字符串 s 转换为字符列表。
  2. 对字符列表进行排序:使用 char_list.sort() 对字符列表进行排序。sort() 方法会就地修改列表,按 ASCII 值排序。
  3. 将排序后的字符列表重新组合成字符串: 使用 ''.join(char_list) 将排序后的字符列表重新组合成一个字符串。

扩展:使用 sorted() 函数

也可以使用 sorted() 函数来实现排序,sorted() 函数会返回一个新的排序后的列表,而不是就地修改原列表。

def sort_string_by_ascii(s):
    """
    将字符串中的所有字符按 ASCII 值排序。

    参数:
        s (str): 要排序的字符串。

    返回:
        str: 按 ASCII 值排序后的字符串。
    """
    # 使用 sorted() 函数对字符列表进行排序
    sorted_chars = sorted(s)

    # 将排序后的字符列表重新组合成字符串
    sorted_string = ''.join(sorted_chars)

    return sorted_string

# 测试代码
original_string = "Python"
sorted_string = sort_string_by_ascii(original_string)

print("原始字符串:", original_string)
print("按 ASCII 值排序后的字符串:", sorted_string)

注意事项

  1. ASCII 值排序:ASCII 值排序是按照字符的 ASCII 码值进行排序。例如,大写字母的 ASCII 值小于小写字母的 ASCII 值,因此在排序时,大写字母会排在小写字母前面。
  2. 性能:对于较短的字符串,排序操作的性能通常不是问题。但对于非常长的字符串,排序操作可能会消耗较多时间。
  3. 适用场景:如果需要对字符串中的字符进行排序,这种方法非常适用。例如,在实现某些加密算法或数据处理任务时,可能需要对字符串中的字符进行排序。

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)