Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:将列表项替换为字符串的有效方法_Python_List_Substitution - Fatal编程技术网

Python:将列表项替换为字符串的有效方法

Python:将列表项替换为字符串的有效方法,python,list,substitution,Python,List,Substitution,我正在为Minecraft服务器创建一个包装器,该服务器应该从名为commands的目录中获取新命令,该目录包含以该命令命名的文件,所有文件都包含用于组成该命令的服务器命令。例如,以下代码段来自定义“tell”命令的文件: 这将产生以下名称: sender = s0lder command = tell args = ['jim', 'hello'] 我的问题是,假设上面的例子,我如何将最后一个字符串(比如“output”)改为: 基本上,我需要一种方法,用args列表中相应的名称/项目替换定

我正在为Minecraft服务器创建一个包装器,该服务器应该从名为commands的目录中获取新命令,该目录包含以该命令命名的文件,所有文件都包含用于组成该命令的服务器命令。例如,以下代码段来自定义“tell”命令的文件:

这将产生以下名称:

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'