SORU
10 EYLÜL 2013, Salı


2 Element-wise Ayrıca Python Listeler?

Şimdi var:

list1=[1, 2, 3]
list2=[4, 5, 6]

Olmak istiyorum:

[1, 2, 3]
        
[4, 5, 6]
   ||
[5, 7, 9]

Sadece element-bilge bir iki liste eklenmesi.

Kesinlikle iki listeyi yinelemek edebilirim, ama bunu yapmak istemiyorum.

Nediren Pythonic yolne yani?

CEVAP
10 EYLÜL 2013, Salı


operator.add map:

>>> from operator import add
>>> map(add, list1, list2)
[5, 7, 9]

ya da listesi bir kavrama ile zip:

>>> [sum(x) for x in zip(list1, list2)]
[5, 7, 9]

Zamanlama karşılaştırmaları:

>>> list2 = [4, 5, 6]zip*5
>>> list1 = [1, 2, 3]zip*5
>>> %timeit from operator import add;map(add, list1, list2)
10 loops, best of 3: 44.6 ms per loop
>>> %timeit from itertools import izip; [a   b for a, b in izip(list1, list2)]
10 loops, best of 3: 71 ms per loop
>>> %timeit [a   b for a, b in zip(list1, list2)]
10 loops, best of 3: 112 ms per loop
>>> %timeit from itertools import izip;[sum(x) for x in izip(list1, list2)]
1 loops, best of 3: 139 ms per loop
>>> %timeit [sum(x) for x in zip(list1, list2)]
1 loops, best of 3: 177 ms per loop

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • atKristaBradford

    atKristaBrad

    4 Aralık 2010
  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • Jejoab

    Jejoab

    4 NİSAN 2008