我有一個這樣的字符串:"initWithType:bundleIdentifier:uniqueIdentifier:"和兩個這樣的列表:['long long', 'id', 'id']
['arg1', 'arg2', 'arg3']并希望以字符串結尾:"initWithType:(long long)arg1 bundleIdentifier:(id)arg2 uniqueIdentifier:(id)arg3"如您所見,我實際上需要將每個第 n 個分號替換為每個列表中的第 n 個字符串(加上一些帶有括號和空格的格式)。我一直在嘗試使用.format和*拆包運算符,但收效甚微。
1 回答
海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
您可以結合使用字符串格式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)))
編輯:您還可以按照@flakes 的建議將 f 字符串與 Python >= 3.6 一起使用:
print(" ".join(f"{a}:(){c}" for a, b, c in zip(s1.split(":"), l2, l3)))
這將打印
initWithType:(long long)arg1 bundleIdentifier:(id)arg2 uniqueIdentifier:(id)arg3
添加回答
舉報
0/150
提交
取消
