2017-11-27 3 views
-2

で1つの文字で2つの文字列を組み合わせる:私は一度に1つの文字で2つの文字列の組み合わせのためにコードを書いている時点

def stringCombination(string1, string2, fillValue = filler): 
    filler = string2[-1] if len(string1) > len(string2) else string[-1] 
    return "".join(i for j in itertools.zip_longest(string1, string2, fillValue = filler) for i in j) 

が、私はエラーフィラーが定義されていません取得します。すべての可能な解決策を試しましたが、私はそれを機能させることはできません。助けはとても素敵でしょう。 の作業コードが実行する必要があります。 入力:自宅、車 出力:hcoamre を1つの文字列が長い=車+家= CHのAO RMEフィラーが定義されていないためだ

+0

fillValue = fillerを設定する前にfillerの値を初期化していますか? – PrestonM

+0

いいえ。私はやり方がありません –

+0

'(string1、string2、fillValue = filler)'を '(string1、string2、filler)'、 'string [-1]'に 'string1 [-1]'と 'fillValue =フィラー=充填剤で充填する。その後、もう一度試してください。 – Alperen

答えて

0

ある場合。フィラーとは何ですか?フィラーは文字列ですか?フィラーは数字ですか?関数stringCombinationのコンテキストでは、「フィラー」が何であるかを定義していません。

あなたは、ほとんどの場合、その場合にはデフォルトの「fillValue」を探しているあなたの関数のシグネチャは次のようなものでなければなりません:おそらくあなたはグローバル変数として「フィラー」を定義し

def stringCombination(string1, string2, fillValue = " "): 

。私が代わりにグローバル変数のための「充填剤」を使用しての、あなたは明確な大文字の名前を使用する必要がありますお勧めします

DEFAULT_FILL_VALUE = " " 
def stringCombination(string1, string2, fillValue = DEFAULT_FILL_VALUE): 

:その場合、あなたのコードは次のようになります。

私はもちろん、スペースのデフォルトの塗りつぶし値が必要であると仮定しています。コンマなどが必要な場合は、スペースを目的の文字に置き換えてください。文字列1、文字列2およびfillValue:あなたはあなたの関数に渡される3つのパラメータを持っている

filler = string2[-1] if len(string1) > len(string2) else string[-1] 

あなたのコードを持つ他の問題は、このラインです。したがって、関数のコンテキストでは、string1、string2およびfillValueのみを操作できます。 "フィラー"と "文字列"を操作または割り当てることは実際にはここでは意味がありません( "文字列"は単にタイプミスであると感じますが、string1を意味しましたか?)。

フィラーを意図的に変更しようとしていて、それがグローバル変数である場合は、これに反対することを強くお勧めします。すべてのグローバル変数を大文字にし、それらが一定であることを確認する必要があります。 、私たちが行うことができ、共通のzip機能を使用することにより

0

私は正しくこの質問を理解すると仮定すると、私はこの問題に対処するためのエレガントな方法は、以下の与えられた二つの文字列"123""456"だと思う

result = "".join(['14', '25', '36'])"123456"を取得するには:[elem[0] + elem[1] for elem in list(zip(a,b))]はありませんから、その後['14', '25', '36']
を取得します。

私の直感は、2つの文字列を各要素のタプルでリストにまとめ、zipがイテレータなので、list呼び出しでリスト内包を行うことができます。そこから、内蔵のjoinメソッドを使用しました。

これは、2つの文字列の長さが等しい場合にのみ有効ですが、私が知る限り、他の2つのケースを扱う唯一の方法は条件付きであることです。

思っただけの食べ物。

関連する問題