当前位置: 首页 > 面试题库 >

优雅的Python函数将CamelCase转换为snake_case?

蓬化
2023-03-14
问题内容

例:

>>> convert('CamelCase')
'camel_case'

问题答案:

Camel case to snake case

import re

name = 'CamelCaseName'
name = re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower()
print(name)  # camel_case_name

如果您执行多次,而上述操作很慢,请事先编译正则表达式:

pattern = re.compile(r'(?<!^)(?=[A-Z])')
name = pattern.sub('_', name).lower()

要专门处理更高级的案件(这不再是可逆的):

def camel_to_snake(name):
  name = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
  return re.sub('([a-z0-9])([A-Z])', r'\1_\2', name).lower()

print(camel_to_snake('camel2_camel2_case'))  # camel2_camel2_case
print(camel_to_snake('getHTTPResponseCode'))  # get_http_response_code
print(camel_to_snake('HTTPResponseCodeXYZ'))  # http_response_code_xyz

Snake skin to camel skin

name = 'snake_case_name'
name = ''.join(word.title() for word in name.split('_'))
print(name)  # SnakeCaseName


 类似资料:
  • 我想将我的firebase数据对象映射到我的POJO。但是,我的firebase对象属性名是snake case,例如;“user_name”。我想在我的pojo上使用camelCase,例如;“用户名” 我找到了这样一个漂亮的答案,但是,我找不到任何关于snake_case到camelCase映射的示例。 我的波乔; 我使用下面的代码行进行映射。“content”匹配没有问题(有或没有@seri

  • 我试图将我的Javascript撰写函数翻译成Python,但我对最后一个有问题。我如何推广未知数量的函数? 读完本文后,我想避免使用方法。 javascript: 蟒蛇: 感谢所有的改进。。。

  • 问题内容: 我有从API返回的JSON,如下所示: 为了使其与我的代码风格(camelCase-小写首字母)保持一致,我想对数组进行转换以产生以下内容: 最简单/最好的方法是什么?创建一个新的Contact对象并遍历返回数组中的所有联系人? 还是可以映射原图或以某种方式对其进行转换? 问题答案: 这是一个可靠的递归函数,它将适当地驼峰化所有JavaScript对象的属性: 测试: 输出:

  • 本文向大家介绍Python 如何优雅的将数字转化为时间格式的方法,包括了Python 如何优雅的将数字转化为时间格式的方法的使用技巧和注意事项,需要的朋友参考一下 将数字转化成时间格式 print(c) 2017-08-25 00:00:00 将时间按照天排列,转化为一个数字,用来做时间序列分析 将时间转化为时间戳 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我有一个R的聚合函数: 我想将这段代码转换成python并获取数据帧。我怎样才能做到?

  • 问题内容: 我明白了为什么使用正则表达式的字符串转换一样没有给出所需的输出到这反而给了。我可以用String.substring做一些事情,或者只是替换最后一个字符,但是我认为有一种更好的解决方案。 这是代码: 问题:正在寻找一种更整洁的方式来获得所需的输出? 问题答案: 看到这个问题,从番石榴 就您而言,类似:

  • 问题内容: Scipy最小化功能(仅作为示例使用)可以选择在每个步骤中添加一个回调函数。所以我可以做类似的事情, 有没有办法使用回调函数来创建fmin的生成器版本,以便我可以做, 似乎可以将收益和收益进行某种组合,但我可以想到任何事情。 问题答案: 如注释中所指出的,您可以使用在新线程中进行操作。缺点是您仍然需要某种方法来访问最终结果(最后返回什么)。下面的示例使用一个可选的回调函数来做一些事情(

  • 我试图将Python程序转换为C++,因为我对Python的理解稍微好一点。然而,翻译出来的代码并不起作用。有人能帮我一下吗?我试图用C++制作一个数独板,但它在中返回一些值,而不是其他位置。加上它们是无效的,并包含0。 这个程序的输出是一个二维数组,所有值都不在0,并且对数独板有效: 是一个长度为9的二维数组,在每个位置都有9个列出的语句。在这里,它们都被初始化为。 这个程序的输出也是一个二维数