This shows you the differences between two versions of the page.
|
ewis:laboratoare:03 [2021/03/24 19:57] alexandru.predescu [Lambda expressions] |
ewis:laboratoare:03 [2023/03/22 17:51] (current) alexandru.predescu [Task] |
||
|---|---|---|---|
| Line 114: | Line 114: | ||
| === 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 125: | 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 257: | 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 ==== | ||