Forum >> Principianti >> Confronto tra liste.

Pagina: 1

Buongiorno a tutti amici pythoniani.
Da qualche giorno sto cercando, senza successo, di scrivere un programmino che esegua un confronto tra due o più liste e ne stampi il/gli elementi in comune.

Non riesco però a ottenere quello che voglio nel caso in cui le due liste non abbiamo elementi comune.

Mi spiego meglio; in questo caso l'output mi va bene;

lista1 = [1,2,3,4]

lista2 = [3,4,5,6,7]




for i in lista1:

    if i in lista2:

        print(f"elemento in comune: {i}")

    else:

        pass

#output 

in comune: 3

in comune: 4
il problema sussiste nel momento in cui le due liste non hanno elementi in comune;

Vorrei che il programma effettui il confronto e stampi semplicemente a fine slicing "niente in comune".

e non

niente in comune
niente in comune
niente in comune
niente in comune


Come si può fare? le sto tentando tutte :\
<< Somewhere, something incredible is waiting to be known >> [Carl Sagan]
Kolmogorov Scale said @ 2024-09-16 13:16:39:
Vorrei che il programma effettui il confronto e stampi semplicemente a fine slicing "niente in comune".

Come si può fare? le sto tentando tutte :\
È piuttosto semplice, guarda sotto :

Python 3.12.3 (main, Jul 31 2024, 17:43:48) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
A = [1, 2, 3, 4]
B = [3, 4, 5, 6, 7]
C = [6, 7, 8, 9]
print() if [print(f'elemento in comune: {i}') for i in A if i in B] else print('niente in comune')
elemento in comune: 3
elemento in comune: 4

print() if [print(f'elemento in comune: {i}') for i in A if i in C] else print('niente in comune')
niente in comune
print() if [print(f'elemento in comune: {i}') for i in B if i in C] else print('niente in comune')
elemento in comune: 6
elemento in comune: 7

Ottenuto semplicemente sfruttando le definizioni base del linguaggio python, roba che val sempre la pena di approfondire ;)




Ciao

Fatti non foste a viver come bruti...
oppure

>>> A = [1, 2, 3, 4]
>>> B = [3, 4, 5, 6, 7]
>>> C = [6, 7, 8, 9]
>>> print(*[f"elemento in comune: {i}" for i in set(A) & set(B)] or ["niente in comune"], sep="\n")
elemento in comune: 3
elemento in comune: 4
>>> print(*[f"elemento in comune: {i}" for i in set(A) & set(C)] or ["niente in comune"], sep="\n")
niente in comune
>>> print(*[f"elemento in comune: {i}" for i in set(B) & set(C)] or ["niente in comune"], sep="\n")
elemento in comune: 6
elemento in comune: 7



THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Kolmogorov Scale said @ 2024-09-16 13:16:39:
Vorrei che il programma effettui il confronto e stampi semplicemente a fine slicing "niente in comune".

Come si può fare? le sto tentando tutte :\
È piuttosto semplice, guarda sotto :

Python 3.12.3 (main, Jul 31 2024, 17:43:4 8) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
A = [1, 2, 3, 4]
B = [3, 4, 5, 6, 7]
C = [6, 7, 8, 9]
print() if [print(f'elemento in comune: {i}') for i in A if i in B] else print('niente in comune')
elemento in comune: 3
elemento in comune: 4

print() if [print(f'elemento in comune: {i}') for i in A if i in C] else print('niente in comune')
niente in comune
print() if [print(f'elemento in comune: {i}') for i in B if i in C] else print('niente in comune')
elemento in comune: 6
elemento in comune: 7

Ottenuto semplicemente sfruttando le definizioni base del linguaggio python, roba che val sempre la pena di approfondire ;)




Ciao


È un tipo di scrittura che non avevo mai visto prima :O :|
<< Somewhere, something incredible is waiting to be known >> [Carl Sagan]
oppure

>>> A = [1, 2, 3, 4]
>>> B = [3, 4, 5, 6, 7]
>>> C = [6, 7, 8, 9]
>>> print(*[f"elemento in comune: {i}" for i in set(A) & set(B)] or ["niente in comune"], sep="\n")
elemento in comune: 3
elemento in comune: 4
>>> print(*[f"elemento in comune: {i}" for i in set(A) & set(C)] or ["niente in comune"], sep="\n")
niente in comune
>>> print(*[f"elemento in comune: {i}" for i in set(B) & set(C)] or ["niente in comune"], sep="\n")
elemento in comune: 6
elemento in comune: 7




Ero riuscito a scrivere una funzione simile utilizzando set &, ma avevo la necessità di operare con le liste.

Comunque anche questo script interessante...

Grazie.
<< Somewhere, something incredible is waiting to be known >> [Carl Sagan]


Pagina: 1



Esegui il login per scrivere una risposta.