Python - comparar y crear lista nueva

 
Vista:

comparar y crear lista nueva

Publicado por novatilla (1 intervención) el 15/07/2008 13:11:15
Hola a todos,

Soy muy muy nueva es esto del python y me he quedado atascada en un problemilla y agradeceria muchisimo una ayudita...

Veamos, tengo una lista donde los datos van de dos en dos, es decir puntos en x e y; hasta ahi todo correcto, el problema viene ahora. Se me pide que si dentro de esta lista hay puntos repetidos, es decir, puntos inútiles, no los devuelva, los elimine de la lista.
Mejor pongo un ejemplo con números: esta es mi lista inicial[2,4,11,13,11,13,6,8] al tener coordenadas iguales debería eliminarlos y dar como resultado esto [2,4,11,13,6,8].

Mi duda viene ahora: ¿cómo debo escribirlo para que lea o compare número por número y si son iguales no me los escriba en la lista nueva? también puede eliminarlos directamente de la lista actual.
La cuestión es que debe comparar, por ejemplo las posiciones impares (las que corresponderían a las x) entre ellas, y si son iguales no añadirlas a la lista nueva, y ahi es cuando me pierdo por completo y me aparecen un montón de errores
:(

Agradezco la ayuda ya de antemano y si no queda clara la explicación por favor, hazedmelo saber...

Gracias por vuestro tiempo y disculpad las molestias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:comparar y crear lista nueva

Publicado por hadrien (10 intervenciones) el 26/07/2008 13:53:35
Hola, puedes hacerlo de varias formas. Una de ellas sería, por ejemplo:

1.- Si comparamos cada valor de la lista con los demás:

a = [2,4,11,13,11,13,6,8]
c = []

for i in range (0,len(a)):
repeated=False
for j in range (0,len(a)):
if a[i]==a[j] and j!=i:
repeated=True
if not repeated:
c.append(a[i])
print "append: "+str(a[i])

print "longitud del resultado: " + str(len(c)) + " "
for k in range (0,len(c)):
print c[k]

2.- Si comparamos cada dos valores, es decir, puntos (x,y):

a = [2,4,11,13,11,13,6,8]
b = []
c = []
d = []

i=0
j=0
while i < len(a):
repeated=False
j=0
b = [a[i],a[i+1]]
while j < len(a):
d = [a[j],a[j+1]]
if b == d and j != i:
repeated=True
j = j+2
if not repeated:
c = c + b
print "append: "+str(b)
i = i+2

for k in range (0,len(c)):
print c[k]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:comparar y crear lista nueva

Publicado por python??? (1 intervención) el 21/02/2010 03:46:32
osea
mira mejor dedicate a estudiar un programa mas facil que ese... alomejor y si es muy facil si alguien te enseña o te orienta en su manejo..... pero si tienes un maestro que lo unico que hace es ponerse a hacer garabatos en el pizarron y darte un libro de 600 hojas para q leas eso si es estar loko--- prefiieron mil veces C++ o turbo C
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar