用列表的第n个字符串替换第n个子字符串

2024-09-22 16:32:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个字符串:

"initWithType:bundleIdentifier:uniqueIdentifier:"

还有两个类似的列表:

['long long', 'id', 'id']
['arg1', 'arg2', 'arg3']

并希望以字符串结尾:

"initWithType:(long long)arg1 bundleIdentifier:(id)arg2 uniqueIdentifier:(id)arg3"

正如您可能看到的,我实际上需要用每个列表中的第n个字符串替换每个第n个分号(加上一点带括号和空格的格式)

我一直在尝试使用.format*解包操作符,但几乎没有成功


Tags: 字符串id列表格式结尾arg3long括号
1条回答
网友
1楼 · 发布于 2024-09-22 16:32:22

您可以将字符串格式与zip结合使用:

s1 = "initWithType:bundleIdentifier:uniqueIdentifier:"
l2 = ['long long', 'id', 'id']
l3 = ['arg1', 'arg2', 'arg3']

print(" ".join("{}:({}){}".format(a, b, c) for a, b, c in zip(s1.split(":"), l2, l3)))

编辑:您还可以将f字符串与Python一起使用>;=3.6根据@flakes的建议:

print(" ".join(f"{a}:({b}){c}" for a, b, c in zip(s1.split(":"), l2, l3)))

这会打印出来

initWithType:(long long)arg1 bundleIdentifier:(id)arg2 uniqueIdentifier:(id)arg3

相关问题 更多 >