Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2017
    Messaggi
    3

    [PYTHON] confronti tra liste

    Ciao a tutti ragazzi sono alle prime armi con python,( anche nuovo sul forum) e mi sto preparando per un esame imminente, mentre facevo degli esercizi, ne ho trovati due con cui ho avuto dei problemi e volevo sapere se qualcuno poteva darmi un mano



    1) "date due liste D = [1,2,3,4,5,6,7,8] e F =[3,5,7] verificare se esiste almeno un elemento di D > di ogni elemento di F"

    2) "date due immagini A e B, verificare se esiste almeno un pixel di A la cui luminosita'(ovvero (Red+Green+Blue)/3 ) e' maggiore di tutte le luminosita' dei pixel di B"



    i due esercizi sono molto simili, ma mi sono trovato piu' in difficolta' sul secondo, ho provato a risolvere il primo in questo modo:

    codice:
    1     D = [1,2,3,4,5,6,7,8]
    2     F = [3,5,7,9]
    3  
    4     def operazione(a,b):
    5     # @param a: int
    6     # @param b: int
    7         return a > b
    8
    9     def confronto(A,B):
    10   # @param A:list
    11   # @param B:list
    12   for x in A:
    13      if confronto2(x,B):
    14          return true
    15   return false
    16  
    17   def confronto2(c,C):
    18   # @param c:int 
    19   # @param C:list
    20   for q in C:
    21      if not confronto(c,q):
    22        return false
    23   return true

    Mi da un errore nella riga 12 ("The error value is: 'int' object is not iterable") e non capisco davvero cosa ci sia di sbagliato.

    per il secondo esercizio ho utilizzato lo stesso codice creando una lista con all'interno le varie luminosità ma comunque non riesco a risolverlo.

    Se qualcuno potesse darmi una mano sarebbe veramente molto gradito
    Grazie in anticipo e buona giornata
    Ultima modifica di dando96; 11-07-2017 a 03:33

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2017
    Messaggi
    3
    ps. ho letto le regole, sono molte, ma spero di non averne infranta nessuna
    Ultima modifica di dando96; 11-07-2017 a 03:35

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Che cosa è A quando esegui la tua applicazione?
    Python dice che sia un intero, tu ipotizzi che sia un iterabile (lista, tupla, dizionario, stringa, ecc)

    PS: il primo esercizio te lo risolvi con un max(D) > max(F), se True esiste almeno un elemento di D che abbia valore maggiore di ogni elemento di F
    Ultima modifica di clasku; 11-07-2017 a 08:38

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2017
    Messaggi
    3
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Che cosa è A quando esegui la tua applicazione?
    Python dice che sia un intero, tu ipotizzi che sia un iterabile (lista, tupla, dizionario, stringa, ecc)

    PS: il primo esercizio te lo risolvi con un max(D) > max(F), se True esiste almeno un elemento di D che abbia valore maggiore di ogni elemento di F

    quell'A quando vado a chiamare la funzione, diventa la lista D, quindi in teoria è iterabile o sbaglio?

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    posta il codice completo, compresa la chiamata alla funzione e i dati che passi

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2017
    Messaggi
    3
    Quote Originariamente inviata da clasku Visualizza il messaggio
    posta il codice completo, compresa la chiamata alla funzione e i dati che passi
    codice:
    1     D =[1,2,3,4,5,6,7,8]
    2     F =[3,5,7,9]
    3  
    4     def operazione(a,b):
    5     # @param a: int
    6     # @param b: int
    7         return a > b
    8
    9     def confronto(A,B):
    10    # @param A:list
    11    # @param B:list
    12       for x in A:
    13           if confronto2(x,B):
    14                return true
    15       return false
    16  
    17    def confronto2(c,C):
    18    # @param c:int 
    19    # @param C:list
    20       for q in C:
    21           if not confronto(c,q):
    22               return  false
    23          return   true
    il codice che passo è esattamente lo stesso della domanda la chiamata alla funzione è:

    >>> confronto(D,F)

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.