の要素に同じ関数を適用するための最速の方法は何が私はこのリストのPython - リスト
l = ['2017-05-13 00:00:00', '2017-05-12 00:00:00', '2017-05-11 00:00:00']
を持っていると私は、各要素00:00:00
部分のために削除します。 elm = elm.split(" ")[0]
。
は
for elm in l:
elm = elm.split(" ")[0]
の要素に同じ関数を適用するための最速の方法は何が私はこのリストのPython - リスト
l = ['2017-05-13 00:00:00', '2017-05-12 00:00:00', '2017-05-11 00:00:00']
を持っていると私は、各要素00:00:00
部分のために削除します。 elm = elm.split(" ")[0]
。
は
for elm in l:
elm = elm.split(" ")[0]
、以下のいくつかの例は以下のとおりです。
ケース0:
l = ['2017-05-13 00:00:00', '2017-05-12 00:00:00', '2017-05-11 00:00:00']
start0 = time.time()
output = []
for data in l:
data = data.split(" ")[0]
output.append(data)
print(output)
print(time.time()-start0)
['2017-05-13', '2017-05-12', '2017-05-11']
5.602836608886719e-05
ケース1:lambda
とmap()
:
l = ['2017-05-13 00:00:00', '2017-05-12 00:00:00', '2017-05-11 00:00:00']
start1 = time.time()
print(list(map(lambda x:x.split(" ")[0],l)))
print(time.time()-start1)
['2017-05-13', '2017-05-12', '2017-05-11']
3.504753112792969e-05
ケース2:list comprehension
l = ['2017-05-13 00:00:00', '2017-05-12 00:00:00', '2017-05-11 00:00:00']
start2 = time.time()
print([i.split()[0] for i in l])
print(time.time()-start2)
['2017-05-13', '2017-05-12', '2017-05-11']
0.00010156631469726562
よりもこれを行うには、より高速な方法は、あなたがそれに分割さ部品を追加するために、空のリストを持っている必要がありますが、おそらくあなたが追記部分を省略あります。
new = []
for elm in l:
elm = elm.split(" ")[0]
new.append(elm)
しかし、より最適化されたアプローチは、リストの内包表記を使用している:最速の方法はlist comprehension
を使用している
In [16]: [i.split()[0] for i in l]
Out[16]: ['2017-05-13', '2017-05-12', '2017-05-11']
あなたdatatime文字列が固定サイズを持っている場合は、あなたが直接文字列をスライスできます。
>>> l = ['2017-05-13 00:00:00', '2017-05-12 00:00:00', '2017-05-11 00:00:00']
>>> [i[:10] for i in l]
['2017-05-13', '2017-05-12', '2017-05-11']
を感謝し、非常に関連します –