Python:将列表项替换为字符串的有效方法
我正在为Minecraft服务器创建一个包装器,该服务器应该从名为commands的目录中获取新命令,该目录包含以该命令命名的文件,所有文件都包含用于组成该命令的服务器命令。例如,以下代码段来自定义“tell”命令的文件: 这将产生以下名称:Python:将列表项替换为字符串的有效方法,python,list,substitution,Python,List,Substitution,我正在为Minecraft服务器创建一个包装器,该服务器应该从名为commands的目录中获取新命令,该目录包含以该命令命名的文件,所有文件都包含用于组成该命令的服务器命令。例如,以下代码段来自定义“tell”命令的文件: 这将产生以下名称: sender = s0lder command = tell args = ['jim', 'hello'] 我的问题是,假设上面的例子,我如何将最后一个字符串(比如“output”)改为: 基本上,我需要一种方法,用args列表中相应的名称/项目替换定
sender = s0lder
command = tell
args = ['jim', 'hello']
我的问题是,假设上面的例子,我如何将最后一个字符串(比如“output”)改为:
基本上,我需要一种方法,用args列表中相应的名称/项目替换定义字符串中由括号包围的区域,以便:
<sender> = sender
<1> = args[0]
<2> = args[1]
=发送方
=args[0]
=args[1]
对于args列表中的所有项,依此类推。谢谢。如果您可以稍微改变一下格式字符串,那么内置的
格式
功能就足够了:
args = ["jim", "hello"]
kwargs = {"sender": "s0lder"}
print("tell {0} {sender} says: {1}".format(*args, **kwargs))
输出
tell jim s0lder says: hello
如果您可以稍微改变一下格式字符串,那么内置的
format
功能就足够了:
args = ["jim", "hello"]
kwargs = {"sender": "s0lder"}
print("tell {0} {sender} says: {1}".format(*args, **kwargs))
输出
tell jim s0lder says: hello
这里有一个解决方案,它不需要你改变你的格式(这一切都是通过编程完成的)
sender='s0lder'
args=['jim','hello']
format=“告诉说:”.replace(“)s”)
#format=='tell%()s%()s说:%()s'
subs={“:sender“:args[0],”:args[1]}
打印格式%subs
#“告诉吉姆·索尔德:你好”
这里有一个解决方案,它不需要您更改格式(所有操作都是通过编程完成的)
sender='s0lder'
args=['jim','hello']
format=“告诉说:”.replace(“)s”)
#format=='tell%()s%()s说:%()s'
subs={“:sender“:args[0],”:args[1]}
打印格式%subs
#“告诉吉姆·索尔德:你好”
发布您已经尝试过的代码以及失败的原因。发布您已经尝试过的代码以及失败的原因。
tell jim s0lder says: hello
sender = 's0lder'
args = ['jim', 'hello']
format = "tell <1> <sender> says: <2>".replace("<", "%(<").replace(">", ">)s")
# format == 'tell %(<1>)s %(<sender>)s says: %(<2>)s'
subs = {"<sender>": sender, "<1>": args[0], "<2>": args[1]}
print format % subs
# 'tell jim s0lder says: hello'