2016-09-08 6 views
-1

で、リスト内の文字列の一部を置き換える私はdiffently例えばパイソン

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

これはOPには役立ちません。 @OPあなたがここでやりたいことで、正規表現が楽になるかもしれません。私たちがあなたを助けるために、あなたが達成しようとしていることを正確に説明できますか? –

答えて

1

以前のIFの中にあります。 最初の条件 - > str == "jai"が失敗した場合、次の条件をチェックしません。 次のようになります。

if str == “jai”: 
    str.replace (“jai”,”firstname”) 
elif str == “ja”: 
    str.replace (“ja”,”first 2 character of firstname”) 
elif str == “j”: 
    str.replace (“j”,”first character of firstname”) 
+0

おかげで、次回のコロンを忘れることはありません – Aniruddh

+0

名前と姓が違うので、それを行うことは可能ですか?例えば – Aniruddh

+0

L1 = [ "JAI"、 "シャラス"、 "ラヴィ"、 "アディティア"] L2 = [ "シン"、 "クマー"、 "シャルマ"、 "RAO"] L3 = [」 [email protected] "、" [email protected] "、" [email protected] "、" [email protected] "] – Aniruddh

1

まず、あなたがリストを定義している「リスト1」である

定義されていないリスト「L1」上で動作し、私はこれは誤植であると仮定します。また、インデントが犯されて、あなたのifsの後にコロンのトンが足りなくなったら、すべてを修正します。もし私が持っていなくて、目的を逃したら、教えてください。

2番目の文字列を比較するには、==を使用しています。これは完全一致の場合にのみ適用されます。あなたが探しているのは "in"演算子です。 012. str1 "、" str2 ")string.replace()は、" str1 "インスタンスが" str2 "に置き換えられた文字列のシャローコピーを返します。 str = str.replace( "1"、 "2")のようにするといいでしょう。

第四に、

for str in list1: 

は、リスト1の要素の別名であるのstr変数を作成し、STRを再割り当てすることはリスト1を変更することはありませんSTR =何かを意味し、エイリアスを破ります。

最後に、すでに「jai」が見つかった場合、「ja」と遭遇することはありません。その理由は、elifsを使用する方が「ja」と「j」のテストではなく、これは、あなたの質問に答える何かが明確でない場合は私に知らせて

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) 

希望:宰」

すべてのすべては、あなたのコードは次のようなものにする必要があります。

私は(「が」の終わりにセミコロンの思い出してくれる)はい場合は、もし第二と第三があるので、あなたが望むように、このコードは動作しません。この?:

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”) 

のようにかなったことを意味想定し