This shows you the differences between two versions of the page.
ewis:laboratoare:03 [2021/03/24 19:53] alexandru.predescu [Lambda expressions] |
ewis:laboratoare:03 [2023/03/22 17:51] (current) alexandru.predescu [Task] |
||
---|---|---|---|
Line 91: | Line 91: | ||
print(final_list) | print(final_list) | ||
</code> | </code> | ||
+ | |||
+ | <note tip> | ||
+ | You can write this using list comprehension too: ''final_list = [x for x in li if x%2 != 0]'' | ||
+ | </note> | ||
+ | |||
=== Use of lambda with map() === | === Use of lambda with map() === | ||
Line 103: | Line 108: | ||
print(final_list) | print(final_list) | ||
</code> | </code> | ||
+ | |||
+ | <note tip> | ||
+ | You can write this using list comprehension too: ''final_list = [x*2 for x in li]'' | ||
+ | </note> | ||
=== Use of lambda with reduce() === | === Use of lambda with reduce() === | ||
- | The ''reduce()'' function in Python takes in a function and a list as argument. The function is called with a lambda function and a list and a new reduced result is returned. This performs a repetitive operation over the pairs of the list (reference: [[https://www.tutorialsteacher.com/python/python-reduce-function#:~:text=The%20reduce()%20function%20is,it%20returns%20a%20single%20value.|Python reduce function]]). This is a part of ''functools'' module. Here is a small program that returns the sum of a list: | + | The ''reduce()'' function in Python takes in a function and a list as argument. The function is called with a lambda function and a list and a new reduced result is returned. This performs a rolling computation to sequential pairs of the list (reference: [[https://www.tutorialsteacher.com/python/python-reduce-function#:~:text=The%20reduce()%20function%20is,it%20returns%20a%20single%20value.|Python reduce function]]). This is a part of ''functools'' module. Here is a small program that returns the sum of a list: |
<code python> | <code python> | ||
Line 116: | Line 125: | ||
</code> | </code> | ||
- | <note>**T1 (4p)** Having a list, filter the even numbers and get the sum of the squared elements. | + | This is shorter than: |
+ | |||
+ | <code python> | ||
+ | li = [5, 8, 10, 20, 50, 100] | ||
+ | sum = 0 | ||
+ | for val in li: | ||
+ | sum = sum + val | ||
+ | print (sum) | ||
+ | </code> | ||
+ | |||
+ | <note>**T1** Having a list, filter the even numbers and get the sum of the squared elements. | ||
*Example list (random generator) | *Example list (random generator) | ||
<code python> | <code python> | ||
Line 248: | Line 267: | ||
==== Task ==== | ==== Task ==== | ||
+ | **T1 (2p)** Lab task presented above | ||
- | 1. Use the functions presented in this lab to read text from a data file and count the number of occurrences for each word. Print the words sorted by the number of occurrences **(3p)**. | + | **T2 (3p)** Use the functions presented in this lab to read text from a data file and count the number of occurrences for each word. Print the words sorted by the number of occurrences. |
*Text file: {{:ewis:laboratoare:random_text.txt|download}} | *Text file: {{:ewis:laboratoare:random_text.txt|download}} | ||
*Hint: You may use a dictionary | *Hint: You may use a dictionary | ||
*Check [[ewis:laboratoare:02|Lab 2]] for working with dictionaries | *Check [[ewis:laboratoare:02|Lab 2]] for working with dictionaries | ||
- | *Sorting a dictionary by values: <code python>sorted_dict = sorted(dict.items(), key=lambda e: e[1], reverse=True)</code> | + | *Sorting dictionary items by values as described [[https://www.programiz.com/python-programming/methods/built-in/sorted|here]]: <code python>sorted_dict = sorted(dict.items(), key=lambda e: e[1], reverse=True)</code> |
- | 2. Print the Netflix titles into a text file **(3p)**. | + | **T3 (2p)** Print the Netflix titles into a text file. |
- | 3. Print the Netflix titles and release years into a text file, using the CSV format, sorted by release year **(4p)**. | + | **T4 (3p)** Print the Netflix titles and release years into a text file, using the CSV format, sorted by release year. |
==== Resources ==== | ==== Resources ==== |