簡體   English   中英

替換列表中字符串的字符

[英]Replacing characters of string in a list

我通過與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'

如何獲得所需的輸出?

字符串是不可變的。 replace在原位不起作用,它返回一個新字符串。 您需要將該新字符串重新分配給原始名稱。

if x in z:
    z = z.replace(x,"Firstname")

(另外,請使用多個空格縮進。)

考慮使用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在此塊末尾將是什么? 刪除z =改變嗎? 如何改變條件句( if elif else )改變輸出?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM