我通过将它与l1和l2进行比较来替换l3中的字符和/或字符串。我得到了什么输出以及我想得到的输出如下所示。
我的代码
l1 = ["Jai","Sharath","Ravi","Aditya"]
l2 = ["Singh","Kumar","Sharma","Rao"]
l3 = ["J.Singh","Sharath_K","R-Sharma","Rao_Aditya"]
for x,y,z in zip(l1,l2,l3):
if x in z:
z.replace(x,"Firstname")
elif x[0] in z:
z.replace(x[0],"First/Character/of/first/name")
elif y in z:
z.replace(y,"lastname")
else:
z.replace(y[0],"First/Character/of/last/name")
我的输出
'First/Character/of/first/name.Singh'
'Firstname_K'
'First/Character/of/first/name/Sharma'
'Rao_Firstname'
我的预期输出
'First/Character/of/first/name.lastname'
'Firstname_First/Character/of/last/name'
'First/Character/of/first/name/lastname'
'lastname_Firstname'
我如何获得所需的输出?
答案 0 :(得分:2)
字符串是不可变的。 replace
无法就地工作,它会返回一个新字符串。您需要将新字符串重新分配给原始名称。
if x in z:
z = z.replace(x,"Firstname")
(另外,请使用多个空格缩进。)
答案 1 :(得分:0)
考虑使用elif
。如果您的第一个条件触发,替换第一个名称,最后一个条件是否会触发替换姓氏?您可能想尝试两个if
else
结构。
请考虑以下事项:
z = 'abc'
if z[0] == 'a':
z = z.replace('a', '1')
elif z[1] == 'b':
z = z.replace('b', '2')
if z[2] == 'c':
z = z.replace('c', '3')
这个街区的结尾会是什么?会删除z =
更改吗?更改条件(if
elif
else
)如何更改输出?