例如,我有一个不同的名字列表
list1 = ["jai.kumar","jaikumar","j_kumar","jk","kumar-jai","ja.ku"]
for str in l1:
if str == “jai”
str.replace (“jai”,”firstname”)
if str == “ja”
str.replace (“ja”,”first 2 character of firstname”)
if str == “j”
str.replace (“j”,”first character of firstname”)
if str == “kumar”
str.replace (“kumar”,”lastname”)
if str == “ku”
str.replace (“ku”,”first 2 character of lasttname”)
if str == “k”
str.replace (“k”,”first character of lastname”)
print(list1)
如何更正上述代码或有更简单的方法吗?
我的预期输出是
list1 = ["firstname.lastname","firstnamelastname","first character of firstname_lastname",.....]
答案 0 :(得分:1)
首先,您要定义一个列表" list1"然后在列表上运行" l1"虽然没有定义,但我认为这是一个错字。你的缩进也被搞砸了,你的ifs后你丢失了大量的冒号,我会纠正这一切,如果我没有并且错过了这个目的,请告诉我。
第二,你正在使用==来比较字符串,这些字符串只对完全匹配才是真的。您正在寻找的是" in"操作
第三,你错误地使用string.replace(" str1"," str2"),string.replace()返回字符串的浅表副本,其中&#34 ; STR1"实例已被" str2"取代,所以你想要做的更像是str = str.replace(" 1"," 2&#34 ;)
第四,
for str in list1:
创建一个str变量,它是list1元素的别名,重新分配str会破坏别名,这意味着str = something不会修改list1。
最后,你不会遇到" ja"如果你已经遇到过" jai"我认为,因为使用elifs更有效率,而不是测试" ja"和" j"在找到" jai"
之后总而言之,您的代码必须是这样的:
list1 = ["jai.kumar","jaikumar","j_kumar","jk","kumar-jai","ja.ku"]
for i in range(len(list1)):
if “jai” in list1[i]:
list1[i] = list1[i].replace (“jai”,”firstname”)
elif “ja” in list1[i]:
list1[i] = list1[i].replace (“ja”,”first 2 character of firstname”)
elif “j” in list1[i]:
list1[i] = list1[i].replace (“j”,”first character of firstname”)
if “kumar” in list1[i]:
list1[i] = list1[i].replace (“kumar”,”lastname”)
elif “ku” in list1[i]:
str = str.replace (“ku”,”first 2 character of lasttname”)
elif "k” in list1[i]:
list1[i] = list1[i].replace (“k”,”first character of lastname”)
print(list1)
希望这能回答你的问题,如果有什么不清楚,请告诉我。
答案 1 :(得分:1)
我认为你的意思是这样的?:
button {
border-radius: 4px;
padding: 5px 10px;
margin: 4px 0;
}
button:hover {
border: 6px solid crimson;
font-weight: 800;
background-color: white;
color: crimson;
margin: 0;
}
如果是(在'if'结尾处记住分号),则此代码将无法正常工作,因为第二个和第三个if位于先前的IF中。 因此,如果第一个条件 - > str ==“jai”失败然后你不检查下一个。 它应该是:
if str == “jai”:
str.replace (“jai”,”firstname”)
if str == “ja”:
str.replace (“ja”,”first 2 character of firstname”)
if str == “j”:
str.replace (“j”,”first character of firstname”)