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

时间:2012-07-01 16:38:17

标签: python

假设我有一个名为“main_form”的主要表单,我还有更多表单名称,例如“w_main_form”,“g_main_form”等基于“{{1 “它们根据'main_form'而变化。

现在有任何简单的方法来生成派生表格的名称以及如何调用它们。

假设类别为“category”,则表单名称应为“iron”,当类别为“w_main_form”时,表单名称应为“coal” ”

2 个答案:

答案 0 :(得分:2)

>>> 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'

如果您正在寻找答案,请提前投票并接受答案(点击向上箭头和绿色复选标记)。

答案 1 :(得分:1)

这将做你的评论所说的..

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