gpt4 book ai didi

Python - For循环不会用它的匹配值替换每个字典键...仅与字典中的最后一个键和值合作

转载 作者:行者123 更新时间:2023-12-01 02:32:16 26 4
gpt4 key购买 nike

所以我有一些代码来制作模块,我需要帮助利用其中包含 .replace()for 循环。 问题是,当我循环 variables 并使用 .replace(k, v) 时,我的代码只会将最后一个键替换为与字典中的最后一个值匹配的值。这使得输出中留下的所有先前的键都不会被替换为它们的匹配值...我需要将每个键替换为每个值,并且只有通过执行字典中的最后一个键才会符合要求

variables = {'font1': 'Harlow Solid', 'grey': '#454545', 'font2': 'mistral'}

style_sheet ='''/* Pyle Sheets */
hashone{
font: Italic 70px font1;
}
hashtwo{ # scroll down to see 'for' loop in question
font: bold 45px font2; # scroll down to see 'for' loop in question
}
hashthree{
font: Italic 25px Harlow Solid;
}
dotsample{
text-align: center;
}
hashbodyid{
background: grey;
}
'''
replace_num = len(variables.keys()) # <--for loop/.replace(k, v) function
for k, v in variables.items(): # <--for loop/.replace(k, v) function
content = style_sheet.replace(k, v, replace_num) # <--- here it is...

looped_content = str(content)
id_content = looped_content.replace("hash", "#")
clss_idContent = id_content.replace("dot", ".")
#------------
print(clss_idContent) # view output

最佳答案

您的代码中存在逻辑错误。让我们分析您的代码。

假设 style_sheet 等于 aabbcc,并且 variables 等于 {"a": 1, "b": 2, “c”:3}

循环期间会发生什么?

第一个循环:content = "aabbcc".replace("a", 1, 3),因此content = "11bbcc"

第二个循环:content = "aabbcc".replace("b", 2, 3),因此content = "aa22cc"

最后一个循环:content = "aabbcc".replace("c", 3, 3),所以content = "aabb33"

那么你注意到关键点在哪里了吗?

您也应该在每个循环期间更新原始字符串!

您可以更改代码,如下所示:

content = style_sheet
for k, v in variables.items():
content = content.replace(k, v, replace_num) #update original string

关于Python - For循环不会用它的匹配值替换每个字典键...仅与字典中的最后一个键和值合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678220/

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