Problema ejercicio en Python sobre funciones.
Publicado por davidlasf (4 intervenciones) el 30/12/2020 18:04:15
Muy buenas, estoy empezando en Python y tengo dudas sobre un ejercicio de funciones que dice lo siguiente:
Diseña una función lee_lista para leer una lista v de N números enteros N constante conocida). Diseña otra función operacion que tome dos listas a y b de N (elementos cada una y un entero k y devuelva en una nueva lista c las posiciones de las listas a y b para las cuales la diferencia en valor absoluto entre los dos valores correspondientes es menor o igual que k. A continuación, escribe una función escritura que muestre una lista en pantalla.
Finalmente, escribe un programa que utilizando las funciones anteriores, lea dos listas y un valor entero, y muestre en pantalla la lista resultante de la transformación.
Ejemplo (para N=6):
Escribe los 6 elementos de la lista a: 3 6 7 2 8 4
Escribe los 6 elementos de la lista b: 1 8 34 6 17 1
Escribe un número: 3
La lista resultante es: 0 1 5
OPERACION devolverá la lista [0, 1, 5], ya que las diferencias entre los valores de las posiciones 0, 1 y 5 de las listas A y B son menores o iguales que 3.
Hasta el momento, he hecho lo siguiente y no obtengo la solución, el proceso está en inglés por que en la universidad estoy dando en Inglés, pero se entiende igualmente:
A ver si alguien me puede echar un cable, muchas gracias!
Diseña una función lee_lista para leer una lista v de N números enteros N constante conocida). Diseña otra función operacion que tome dos listas a y b de N (elementos cada una y un entero k y devuelva en una nueva lista c las posiciones de las listas a y b para las cuales la diferencia en valor absoluto entre los dos valores correspondientes es menor o igual que k. A continuación, escribe una función escritura que muestre una lista en pantalla.
Finalmente, escribe un programa que utilizando las funciones anteriores, lea dos listas y un valor entero, y muestre en pantalla la lista resultante de la transformación.
Ejemplo (para N=6):
Escribe los 6 elementos de la lista a: 3 6 7 2 8 4
Escribe los 6 elementos de la lista b: 1 8 34 6 17 1
Escribe un número: 3
La lista resultante es: 0 1 5
OPERACION devolverá la lista [0, 1, 5], ya que las diferencias entre los valores de las posiciones 0, 1 y 5 de las listas A y B son menores o iguales que 3.
Hasta el momento, he hecho lo siguiente y no obtengo la solución, el proceso está en inglés por que en la universidad estoy dando en Inglés, pero se entiende igualmente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def read_list(v):
v=[]
for i in range (n):
nv=int(input('Write a number: '))
v.append(nv)
return(v)
def operation(a,b,k):
a=[]
b=[]
c=[]
for i in range (len(a)):
for i in range (len(b)):
if (abs(a[i]-(abs(b[i]))))<=k:
i+=1
c.append(i)
return(c)
def writting(c):
for i in range (len(c)):
print(c[i],end='')
n=int(input('How many numbers you want your lists to have?: '))
k=int(input('Write a number: '))
writing(operation(read_list(n),read_list(n),k))
A ver si alguien me puede echar un cable, muchas gracias!
Valora esta pregunta


0