comprehensions.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. nums = [1,2,3,4,5,6,7,8,9,10]
  2. # I want 'n' for each 'n' in nums
  3. my_list = []
  4. for n in nums:
  5. my_list.append(n)
  6. print my_list
  7. print [n for n in nums]
  8. # I want 'n*n' for each 'n' in nums
  9. # my_list = []
  10. # for n in nums:
  11. # my_list.append(n*n)
  12. # print my_list
  13. # Using a map + lambda
  14. # my_list = map(lambda n: n*n, nums)
  15. # print my_list
  16. # I want 'n' for each 'n' in nums if 'n' is even
  17. # my_list = []
  18. # for n in nums:
  19. # if n%2 == 0:
  20. # my_list.append(n)
  21. # print my_list
  22. # Using a filter + lambda
  23. # my_list = filter(lambda n: n%2 == 0, nums)
  24. # print my_list
  25. # I want a (letter, num) pair for each letter in 'abcd' and each number in '0123'
  26. # my_list = []
  27. # for letter in 'abcd':
  28. # for num in range(4):
  29. # my_list.append((letter,num))
  30. # print my_list
  31. # Dictionary Comprehensions
  32. names = ['Bruce', 'Clark', 'Peter', 'Logan', 'Wade']
  33. heros = ['Batman', 'Superman', 'Spiderman', 'Wolverine', 'Deadpool']
  34. # print zip(names, heros)
  35. # I want a dict{'name': 'hero'} for each name,hero in zip(names, heros)
  36. # my_dict = {}
  37. # for name, hero in zip(names, heros):
  38. # my_dict[name] = hero
  39. # print my_dict
  40. # If name not equal to Peter
  41. # Set Comprehensions
  42. # nums = [1,1,2,1,3,4,3,4,5,5,6,7,8,7,9,9]
  43. # my_set = set()
  44. # for n in nums:
  45. # my_set.add(n)
  46. # print my_set
  47. # Generator Expressions
  48. # I want to yield 'n*n' for each 'n' in nums
  49. nums = [1,2,3,4,5,6,7,8,9,10]
  50. # def gen_func(nums):
  51. # for n in nums:
  52. # yield n*n
  53. # my_gen = gen_func(nums)
  54. # for i in my_gen:
  55. # print i