我想從['a','b','c']將python的列表變成['a','a','b',b','c','c']。我想從['a','b','c']將python列表變成['a','a','b',b','c','c']
Anyboday知道要做到這一點嗎? 謝謝!
我想從['a','b','c']將python的列表變成['a','a','b',b','c','c']。我想從['a','b','c']將python列表變成['a','a','b',b','c','c']
Anyboday知道要做到這一點嗎? 謝謝!
的東西,或多或少的說:「我不想重複每個元素兩次」,有嵌套列表理解與range
:
>>> l = ['a', 'b', 'c']
>>> [x for x in l for _ in range(2)]
['a', 'a', 'b', 'b', 'c', 'c']
你可以把它用,如果你的列表乘一點點短髮現更易讀,也不會需要擴展2
了大量與列表理解轉換爲發電機的表達:
>>> l = ['a', 'b', 'c']
>>> [y for x in l for y in [x, x]]
如果你是哈斯克爾的粉絲,其中竟被l >>= replicate 2
d工作,你可以模仿的是:
import itertools
from functools import partial
from operator import mul
def flat_map(iterable, f):
return itertools.chain.from_iterable(map(f, iterable))
l = ['a', 'b', 'c']
flat_map(l, partial(mul, 2))
你總是可以創建一個新的列表:
for x in oldList:
newList.append(x)
newList.append(x)
注意,這將創建一個新的列表,而不是修改舊的!
source = ['a','b','c']
result = [el for el in source for _ in (1, 2)]
print(result)
給你
['a', 'a', 'b', 'b', 'c', 'c']
你知道這個答案的運行速度比我的快呢?只是好奇,謝謝。 – KillPinguin
@KillPinguin:我不會,對不起。 – Ryan