Advertisement
furas

Python - list comprehension

May 24th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.55 KB | None | 0 0
  1. # oryginal: https://pastebin.com/krRhJNQm
  2.  
  3. def func(years, fields):
  4.     print [ (year.year, field) for year, field in zip(years, fields) ]
  5.  
  6. def func(years, fields):
  7.     print list(map(lambda d: (d[0].year, d[1]), zip(years, fields)))
  8.  
  9. # --- script for test ---
  10.  
  11. #!/usr/bin/env python3
  12.  
  13. def func0(years, fields):
  14.     result = []
  15.     for i, y in enumerate(years):
  16.         tup = (y, fields[i])
  17.         result.append(tup)
  18.     #print(result)
  19.  
  20. def func0zip(years, fields):
  21.     result = []
  22.     for y, f in zip(years, fields):
  23.         result.append((y, f))
  24.     #print(result)
  25.  
  26. def func1(years, fields):
  27.     result = [(y.year, f) for (y, f) in zip(years, fields)]
  28.     #print(result)
  29.  
  30. def func2(years, fields):
  31.     result = list(map(lambda d: (d[0].year, d[1]), zip(years, fields)))
  32.     #print(result)
  33.  
  34. # --- test ---
  35.  
  36. import random
  37. import datetime
  38. import string
  39.  
  40. # random data
  41. size = 10009
  42. fields = [ random.choice(string.ascii_letters) for x in range(size) ]
  43. dates = [ datetime.datetime(random.randint(1900, 2018), 1, 1) for x in range(size) ]
  44.  
  45. #print(fields)
  46. #print(dates)
  47. #print()
  48.  
  49. start = datetime.datetime.now()
  50. func0(dates, fields)
  51. end = datetime.datetime.now()
  52. print('time:', end-start)
  53.  
  54. start = datetime.datetime.now()
  55. func0zip(dates, fields)
  56. end = datetime.datetime.now()
  57. print('time:', end-start)
  58.  
  59. start = datetime.datetime.now()
  60. func1(dates, fields)
  61. end = datetime.datetime.now()
  62. print('time:', end-start)
  63.  
  64. start = datetime.datetime.now()
  65. func2(dates, fields)
  66. end = datetime.datetime.now()
  67. print('time:', end-start)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement