これらは私のリストです
i=["abc","def","ghi"]
j=[" ","rfd"," "," ","qf"]
そして、出力を次のようにしたいのですが、
j=["abc","rfd","def","ghi","qf"]
つまり、「j」内にスペースが見つかった場合は常に、スペースを「i」の要素で置き換える必要がありますか? スペースの位置でリストから他の値を挿入する方法
これらは私のリストです
i=["abc","def","ghi"]
j=[" ","rfd"," "," ","qf"]
そして、出力を次のようにしたいのですが、
j=["abc","rfd","def","ghi","qf"]
つまり、「j」内にスペースが見つかった場合は常に、スペースを「i」の要素で置き換える必要がありますか? スペースの位置でリストから他の値を挿入する方法
it= iter(i)
[next(it) if item.isspace() else item for item in j]
これはリストを繰り返し処理しj
、要素が「空」でない場合 (すべて空白)、要素を生成します。「空」の場合、リストの次の要素が生成されi
ます。
@JonClements と @DSM の提案に感謝します。
理解するための素晴らしく簡単な解決策:
>>> i = ['abc', 'def', 'ghi']
>>> j = [' ', 'rfd', ' ', ' ', 'qf']
>>> cnt = 0
>>> new = []
>>> for item in j:
... if item == ' ':
... new.append(i[cnt])
... cnt += 1
... else:
... new.append(item)
...
>>> print new
['abc', 'rfd', 'abc', 'abc', 'qf']