0

これらは私のリストです

i=["abc","def","ghi"]
j=[" ","rfd"," "," ","qf"]

そして、出力を次のようにしたいのですが、

j=["abc","rfd","def","ghi","qf"]

つまり、「j」内にスペースが見つかった場合は常に、スペースを「i」の要素で置き換える必要がありますか? スペースの位置でリストから他の値を挿入する方法

4

5 に答える 5

4
it= iter(i)
[next(it) if item.isspace() else item for item in j]

これはリストを繰り返し処理しj、要素が「空」でない場合 (すべて空白)、要素を生成します。「空」の場合、リストの次の要素が生成されiます。

@JonClements と @DSM の提案に感謝します。

于 2013-08-29T11:05:26.010 に答える
0

理解するための素晴らしく簡単な解決策:

>>> 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']
于 2013-08-29T11:04:51.960 に答える