繁体   English   中英

替换字符串中字符的最简单方法

[英]Easiest way to substitute characters in the string

假设我有一个名为“ main_form ”的主表单,而我还有其他一些基于“ main_form ”的表单名称,如“ w_main_form ”,“ g_main_form ”等,它们根据“ category ”而有所不同。

现在有什么简单的方法可以生成派生表单的名称以及如何调用它们。

假设类别为“ iron ”,则表单名称应为“ w_main_form ”,而类别为“ coal ”时,表单名称应为“ g_main_form ”。

>>> main_name = "main_form"
>>> derived_names = []
>>> for prefix in ["w_", "g_"]:
    derived_names.append("%s%s" % (prefix, main_name))


>>> derived_names
['w_main_form', 'g_main_form']

或者,使用列表推导(我的首选方法):

>>> derived_names = ["%s%s" % (prefix, main_name) for prefix in ["w_", "g_"]]
>>> derived_names
['w_main_form', 'g_main_form']

通常,因此您可以自己应用相同的原理,因此要根据函数f(main_name, data)和要提供给它的data来考虑要进行的转换。 在这种情况下,该操作为“ prepend”(我使用"%s%s" % (prefix, main_name)实现了该操作),并且数据均为前缀。

编辑:是的。

>>> category_to_prefix = {'iron': 'w_', 'coal': 'g_'}
>>> def category_to_form_name(category):
    return '%s%s' % (category_to_prefix.get(category,""), 'main_form')

>>> category_to_form_name('iron')
'w_main_form'
>>> category_to_form_name('coal')
'g_main_form'
>>> category_to_form_name(None)
'main_form'

如果您要查找答案,请对其进行投票并接受答案(单击向上箭头和绿色的对号)。

这将按照您的评论说的做..

def generate_Name(base, category):
    if category == 'iron':
        derived_name = 'w_'+base
    elif category == 'coal':
        derived_name = 'g_'+base

    return derived_name


iron_form = generate_Name('main_form', 'iron')
coal_form = generate_Name('main_form', 'coal')

print iron_form
print coal_form

w_main_form
g_main_form

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM