gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:06 24 4
gpt4 key购买 nike

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

tell <1> <sender> says: <2>

在内部,包装器读取服务器进程的标准输出,查找用户正在运行命令的指示。然后它会分割命令,从中获取名称“sender”(显然是发送命令的人)、“command”(指示命令的单字字符串)和一个名为 args 的列表,其中包含参数跟随命令字符串。例如tell命令的语法是这样的:

tell jim hello

这会产生以下名称:

sender = s0lder
command = tell
args = ['jim', 'hello']

我的问题是,假设上面的例子,我怎样才能制作最终的字符串,说“输出”,阅读:

tell jim s0lder says: hello

我基本上需要一种方法,用参数列表中相应的名称/项目替换定义字符串中括号包围的区域,以便:

<sender> = sender
<1> = args[0]
<2> = args[1]

对于 args 列表中的所有项目,依此类推。谢谢。

最佳答案

这是一个不需要您更改格式的解决方案(这一切都是通过编程完成的)。

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'

关于Python:将列表项替换为字符串的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com