2020年11月26日木曜日

言語処理100本ノック2020 問題02

 問. 「パトカー」+「タクシー」の文字を先頭から交互に連結して文字列「パタトクカシーー」を得よ


解答例

#str2,str2でパトカーとタクシーを定義

str1 = "パトカー"
str2 = "タクシー"
 

#「パタトクカシーー」の出力先となる空の行列を入れたstr3を作る

str3 = ""

#zip関数を使ってstr3にstr1とstr2の文字を交互に入れていく
str4 = str3.join([i+j for i, j in zip(str1, str2)])
 

#str4を表示

print(str4)

 

出力

パタトクカシーー


では、str2とstr3を入れ替えるとどうなるのか。

str1 = "パトカー"
str2 = ""
str3 = "タクシー"

str4 = str3.join([ i+j for i,j in zip(str1,str2)])
print(str4)

出力

プロセスは終了コード 0 で完了しました

 何も出ませんね。str2が空行列のため、str4が作られなかった。

確認のためにstr2を空行列ではなく、「XXXXXX」とするとどうなるでしょうか。

str1 = "パトカー"
str2 = "XXXXXX"
str3 = "タクシー"

str4 = str3.join([ i+j for i,j in zip(str1,str2)])
print(str4)

 出力

パXタクシートXタクシーカXタクシーーX 


タクシーで1つの語なので、うまく混ざりませんでした。


参考リンク

【言語処理100本ノック 2020】第1章: 準備運動 

Python, zip関数の使い方: 複数のリストの要素をまとめて取得 

 



0 件のコメント:

コメントを投稿