Skip to content

Commit f0079c0

Browse files
committed
oneline update
1 parent 6cbb287 commit f0079c0

File tree

2 files changed

+177
-27
lines changed

2 files changed

+177
-27
lines changed

Python/Esercizi/OneLine.py

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,42 +16,50 @@ def funct(*parametri*):
1616

1717
#%%
1818
""" ES 0 - banale
19-
Scrivere una funzione che sommi due numeri solo se divisibili per 2.
19+
Scrivere una funzione che data una lista di interi, ritorni una lista dove ogni valore della lista iniziale è stato sommato con il precedente (eccetto il primo).
2020
"""
21-
def es0(a, b):
21+
22+
def es0(lista):
2223
#Inserisci qui il tuo codice
2324
pass
2425

26+
# print(es0([-3, 6, 12, -5, 8, 19, -9])) # OUT: [3, 18, 7, 3, 27, 10]
27+
2528

2629

2730
#%%
2831
""" ES 1 - facile
2932
Scrivere una funzione che sommi i valori pari di una lista se il loro valore assoluto elevato alla 3, fratto 2 sia multiplo di 3.
3033
"""
31-
def es2(lista):
34+
35+
def es1(lista):
3236
#Inserisci qui il tuo codice
3337
pass
3438

35-
# print(es2([2, 5, 7, 8, 4, 12, 6])) # OUT: 18
39+
# print(es1([2, 5, 7, 8, 4, 12, 6])) # OUT: 18
3640

3741

3842

3943
#%%
4044
""" ES 2 - facile
4145
Scrivere una funzione che prenda in input una lista di stringhe e restituisca una nuova lista contenente solo le stringhe palindrome della lista iniziale.
4246
"""
43-
def es3(lista):
47+
48+
def es2(lista):
4449
#Inserisci qui il tuo codice
4550
pass
4651

52+
# print(es2(["abba", "luna", "Erano usi suonare.", "a bCcBa", "oggi"])) # OUT: ['abba', 'Erano usi suonare.', 'a bCcBa']
53+
4754

4855

4956
#%%
5057
""" ES 3 - medio
5158
Scrivere una funzione che, data una stringa, ne elimini la punteggiatura e ritorni una tupla tale che:
5259
tupla = (numeroVocali, numeroConsonanti)
5360
"""
54-
def es4(stringa):
61+
62+
def es3(stringa):
5563
#Inserisci qui il tuo codice
5664
pass
5765

@@ -61,7 +69,8 @@ def es4(stringa):
6169
""" ES 4 - medio
6270
Scrivere una funzione che sommi due numeri solo se positivi e divisibili per 2, altrimenti ne faccia la sottrazione.
6371
"""
64-
def es4(a, b):
72+
73+
def es4(num1, num2):
6574
#Inserisci qui il tuo codice
6675
pass
6776

@@ -76,6 +85,7 @@ def es4(a, b):
7685
Scrivere una funzione che prenda come parametro 2 liste, faccia la moltiplicazione tra gli elementi dello stesso indice e ritorni una
7786
lista contenente i valori moltiplicati solo se multipli di 5.
7887
"""
88+
7989
def es5(lista1, lista2):
8090
#Inserisci qui il tuo codice
8191
pass
@@ -87,6 +97,7 @@ def es5(lista1, lista2):
8797
Scrivere una funzione che, date due liste di interi, ritorni una lista contenente i quadrati dei valori assoluti maggiori di 10 della
8898
divisione dei multipli di 3.
8999
"""
100+
90101
def es6(lista1, lista2):
91102
#Inserisci qui il tuo codice
92103
pass
@@ -95,20 +106,45 @@ def es6(lista1, lista2):
95106

96107
#%%
97108
""" ES 7 - difficile
98-
Progettare una che prenda in inuput due stringhe di soli numeri (es: a = "3542189432185976" e b = "4568281346714923") considerati numeri
99-
a una cifra, li converta in interi e per ogni numero della prima stringa ne faccia il prodotto con ogni numero della seconda, salvando
100-
ogni valore ottenuto in una nuova lista (che verrà poi ritornata).
109+
Progettare una funzione che prenda in inuput due stringhe, a e b, di soli numeri (es: a = "3542189432185976" e b = "4568281346714923") considerati numeri
110+
a una cifra, li converta in interi e per ogni numero di a faccia il prodotto con ogni numero di b, salvando ogni valore ottenuto in una nuova lista.
111+
Bisogna tornare una lista di liste, dove ogni sottolista contiene i risultati dell'n-esimo valore di a moltiplicato per ogni singolo valore di b.
101112
"""
113+
102114
def es7(a, b):
103115
#Inserisci qui il tuo codice
104116
pass
105117

106-
118+
# print(es7("3542189432185976", "4568281346714923"))
119+
"""
120+
out:
121+
[[12, 15, 18, 24, 6, 24, 3, 9, 12, 18, 21, 3, 12, 27, 6, 9],
122+
[20, 25, 30, 40, 10, 40, 5, 15, 20, 30, 35, 5, 20, 45, 10, 15],
123+
[16, 20, 24, 32, 8, 32, 4, 12, 16, 24, 28, 4, 16, 36, 8, 12],
124+
[8, 10, 12, 16, 4, 16, 2, 6, 8, 12, 14, 2, 8, 18, 4, 6],
125+
[4, 5, 6, 8, 2, 8, 1, 3, 4, 6, 7, 1, 4, 9, 2, 3],
126+
[32, 40, 48, 64, 16, 64, 8, 24, 32, 48, 56, 8, 32, 72, 16, 24],
127+
[36, 45, 54, 72, 18, 72, 9, 27, 36, 54, 63, 9, 36, 81, 18, 27],
128+
[16, 20, 24, 32, 8, 32, 4, 12, 16, 24, 28, 4, 16, 36, 8, 12],
129+
[12, 15, 18, 24, 6, 24, 3, 9, 12, 18, 21, 3, 12, 27, 6, 9],
130+
[8, 10, 12, 16, 4, 16, 2, 6, 8, 12, 14, 2, 8, 18, 4, 6],
131+
[4, 5, 6, 8, 2, 8, 1, 3, 4, 6, 7, 1, 4, 9, 2, 3],
132+
[32, 40, 48, 64, 16, 64, 8, 24, 32, 48, 56, 8, 32, 72, 16, 24],
133+
[20, 25, 30, 40, 10, 40, 5, 15, 20, 30, 35, 5, 20, 45, 10, 15],
134+
[36, 45, 54, 72, 18, 72, 9, 27, 36, 54, 63, 9, 36, 81, 18, 27],
135+
[28, 35, 42, 56, 14, 56, 7, 21, 28, 42, 49, 7, 28, 63, 14, 21],
136+
[24, 30, 36, 48, 12, 48, 6, 18, 24, 36, 42, 6, 24, 54, 12, 18]]
137+
"""
107138

108139
#%%
109140
""" ES 8 -
110141
111142
"""
143+
112144
def es8(a, b):
113145
#Inserisci qui il tuo codice
114-
pass
146+
pass
147+
148+
149+
150+

Python/Soluzioni/OneLine.py

Lines changed: 129 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
"""
2+
Autor: Rurik
3+
24
Gli esercizi che troverete di seguito sono pensati per essere svolti interamente in una riga, con la seguente sintassi:
35
def funct(*parametri*):
46
return *OneLine* (per "OneLine" intendo una serie di istruzioni incastrate tutte in una riga che risolvano un determinato problema)
@@ -13,31 +15,143 @@ def funct(*parametri*):
1315

1416

1517
#%%
16-
""" ES 1
17-
Scrivere una funzione che sommi due numeri solo se positivi e multipli di 2, altrimenti ne faccia la sottrazione.
18+
""" ES 0 - banale
19+
Scrivere una funzione che data una lista di interi, ritorni una lista dove ogni valore della lista iniziale è stato sommato con il precedente (eccetto il primo).
1820
"""
19-
def es1(a, b):
20-
return (lambda : a + b if all([a % 4 == 0, b % 4 == 0, a > 0, b > 0]) else a - b)()
2121

22-
print(es1(20, 24))
23-
print(es1(21, 24))
24-
print(es1(-20, 24))
22+
def es0(lista):
23+
return list(map(lambda i : lista[i-1] + lista[i], range(1, len(lista))))
24+
25+
# print(es0([-3, 6, 12, -5, 8, 19, -9])) # OUT: [3, 18, 7, 3, 27, 10]
26+
2527

2628

2729
#%%
28-
""" ES 2
29-
Scrivere una funzione che sommi i valori pari di una lista se il loro valore assoluto elevato alla 3,
30-
fratto 2 sia multiplo di 3.
30+
""" ES 1 - facile
31+
Scrivere una funzione che sommi i valori pari di una lista se il loro valore assoluto elevato alla 3, fratto 2 sia multiplo di 3.
3132
"""
32-
def es2(l):
33+
34+
def es1(lista):
3335
return sum(list(filter(lambda y : ((abs(y) ** 3)//2) % 3 == 0, filter(lambda x : x % 2 == 0, l))))
36+
pass
37+
38+
# print(es1([2, 5, 7, 8, 4, 12, 6])) # OUT: 18
39+
40+
41+
42+
#%%
43+
""" ES 2 - facile
44+
Scrivere una funzione che prenda in input una lista di stringhe e restituisca una nuova lista contenente solo le stringhe palindrome della lista iniziale.
45+
(non sono considerati spazi, punteggiature e differenza tra maiuscole e minuscole)
46+
"""
47+
48+
def es2(lista):
49+
return list(filter(lambda stringa : stringa.lower().translate(str.maketrans("", "", ",.!? ")) == stringa[::-1].lower().translate(str.maketrans("", "", ",.!? ")), lista))
50+
51+
# print(es2(["abba", "luna", "Erano usi suonare.", "a bCcBa", "oggi"])) # OUT: ['abba', 'Erano usi suonare.', 'a bCcBa']
52+
3453

35-
print(es2([2, 5, 7, 8, 4, 12, 6]))
3654

3755
#%%
38-
""" ES 3
56+
""" ES 3 - medio
3957
Scrivere una funzione che, data una stringa, ne elimini la punteggiatura e ritorni una tupla tale che:
4058
tupla = (numeroVocali, numeroConsonanti)
4159
"""
42-
def conta_lettere(stringa):
43-
return list((len(list(filter(lambda x : x not in ("a","e","i","o","u"), stringa.translate(str.maketrans("",""," ,?!.")).lower()))), len(list(filter(lambda y : y in ("a","e","i","o","u"), stringa.translate(str.maketrans("",""," ,.!?")).lower())))))
60+
61+
def es3(stringa):
62+
return list((len(list(filter(lambda x : x not in ("a","e","i","o","u"), stringa.translate(str.maketrans("",""," ,?!.")).lower()))), len(list(filter(lambda y : y in ("a","e","i","o","u"), stringa.translate(str.maketrans("",""," ,.!?")).lower())))))
63+
64+
65+
66+
67+
#%%
68+
""" ES 4 - medio
69+
Scrivere una funzione che sommi due numeri solo se positivi e divisibili per 2, altrimenti ne faccia la sottrazione.
70+
"""
71+
72+
def es4(num1, num2):
73+
return (lambda : num1 + num2 if all([num1 % 4 == 0, num2 % 4 == 0, num1 > 0, num2 > 0]) else num1 - num2)()
74+
75+
# print(es4(20, 24)) # OUT: 44['abba', 'Erano usi suonare.', 'a bCcBa']
76+
# print(es4(21, 24)) # OUT: -3
77+
# print(es4(-20, 24)) # OUT: -44
78+
79+
80+
81+
#%%
82+
""" ES 5 - medio/facile
83+
Scrivere una funzione che prenda come parametro 2 liste, faccia la moltiplicazione tra gli elementi dello stesso indice e ritorni una
84+
lista contenente i valori moltiplicati solo se multipli di 5.
85+
"""
86+
87+
def es5(lista1, lista2):
88+
#Inserisci qui il tuo codice
89+
pass
90+
91+
92+
93+
#%%
94+
""" ES 6 - medio/difficile
95+
Scrivere una funzione che, date due liste di interi, ritorni una lista contenente i quadrati dei valori assoluti maggiori di 10 della
96+
divisione dei multipli di 3.
97+
"""
98+
99+
def es6(lista1, lista2):
100+
return list(map(lambda j : abs(j) ** 2 , filter(lambda w : w > 10, filter(lambda x : x % 3 == 0, map(lambda y, z : z // y, filter(lambda m : m != 0, lista1), filter(lambda n : n != 0, lista2))))))
101+
102+
import random
103+
104+
105+
x =[]
106+
for i in range(1500):
107+
x.append(random.randint(-20, 40))
108+
109+
y =[]
110+
for i in range(1500):
111+
y.append(random.randint(-20, 40))
112+
113+
print(es6(x, y))
114+
115+
116+
117+
#%%
118+
""" ES 7 - difficile
119+
Progettare una funzione che prenda in inuput due stringhe, a e b, di soli numeri (es: a = "3542189432185976" e b = "4568281346714923") considerati numeri
120+
a una cifra, li converta in interi e per ogni numero di a faccia il prodotto con ogni numero di b, salvando ogni valore ottenuto in una nuova lista.
121+
Bisogna tornare una lista di liste, dove ogni sottolista contiene i risultati dell'n-esimo valore di a moltiplicato per ogni singolo valore di b.
122+
"""
123+
124+
def es7(a, b):
125+
return list(map(lambda i : list(map(lambda j: list(map(lambda x1: int(x1), a))[i] * list(map(lambda x2: int(x2), b))[j], list(range(len(a))))), list(range(len(b)))))
126+
127+
# print(es7("3542189432185976", "4568281346714923"))
128+
"""
129+
out:
130+
[[12, 15, 18, 24, 6, 24, 3, 9, 12, 18, 21, 3, 12, 27, 6, 9],
131+
[20, 25, 30, 40, 10, 40, 5, 15, 20, 30, 35, 5, 20, 45, 10, 15],
132+
[16, 20, 24, 32, 8, 32, 4, 12, 16, 24, 28, 4, 16, 36, 8, 12],
133+
[8, 10, 12, 16, 4, 16, 2, 6, 8, 12, 14, 2, 8, 18, 4, 6],
134+
[4, 5, 6, 8, 2, 8, 1, 3, 4, 6, 7, 1, 4, 9, 2, 3],
135+
[32, 40, 48, 64, 16, 64, 8, 24, 32, 48, 56, 8, 32, 72, 16, 24],
136+
[36, 45, 54, 72, 18, 72, 9, 27, 36, 54, 63, 9, 36, 81, 18, 27],
137+
[16, 20, 24, 32, 8, 32, 4, 12, 16, 24, 28, 4, 16, 36, 8, 12],
138+
[12, 15, 18, 24, 6, 24, 3, 9, 12, 18, 21, 3, 12, 27, 6, 9],
139+
[8, 10, 12, 16, 4, 16, 2, 6, 8, 12, 14, 2, 8, 18, 4, 6],
140+
[4, 5, 6, 8, 2, 8, 1, 3, 4, 6, 7, 1, 4, 9, 2, 3],
141+
[32, 40, 48, 64, 16, 64, 8, 24, 32, 48, 56, 8, 32, 72, 16, 24],
142+
[20, 25, 30, 40, 10, 40, 5, 15, 20, 30, 35, 5, 20, 45, 10, 15],
143+
[36, 45, 54, 72, 18, 72, 9, 27, 36, 54, 63, 9, 36, 81, 18, 27],
144+
[28, 35, 42, 56, 14, 56, 7, 21, 28, 42, 49, 7, 28, 63, 14, 21],
145+
[24, 30, 36, 48, 12, 48, 6, 18, 24, 36, 42, 6, 24, 54, 12, 18]]
146+
"""
147+
148+
#%%
149+
""" ES 8 -
150+
151+
"""
152+
153+
def es8(a, b):
154+
#Inserisci qui il tuo codice
155+
pass
156+
157+

0 commit comments

Comments
 (0)