Python - Problema con listas

 
Vista:

Problema con listas

Publicado por UNKNOWN (1 intervención) el 29/09/2019 21:42:23
Hola, estoy tratando de resolver problemas relacionados con listas y no encuentro como poder hacer este sin la función insert:
Realice una función llamada inserta(lista,elem,pos) que recibe una lista, un elemento y una posición. La función inserta en la lista el elemento elem en la posición pos. Nota que ningún elemento se borra, tan solo se recorren a la derecha cuando se inserta un elemento.
La función regresa la nueva lista con el elemento insertado en la posición correcta. No puede usar la función insert para listas.
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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema con listas

Publicado por algoritmo (245 intervenciones) el 30/09/2019 12:20:43
Hola.

Espero que te sirva. Un saludo :)

1
2
3
4
5
6
7
8
9
10
11
12
13
def inserta(lista,elem,pos):
    dev = []
    for t in range(len(lista)):
        if t == pos-1:
            dev.append(elem)
        dev.append(lista[t])
    print dev
 
 
lista = [1, 2, 3, 4]
elem = 2.5
pos = 3
inserta(lista, elem, pos)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jaime
Val: 526
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema con listas

Publicado por Jaime (136 intervenciones) el 02/10/2019 05:53:07
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# -*- Encoding:UTF-8 -*-
 
 
#Metodo que inicializa una lista
def iniciarLista(lista, pos):
    for i in range(len(lista), pos + 1):
        lista.append(None)
 
 
#Metodo para extender la lista en una posicion
def extender(lista):
    lista.append(None)
 
 
#Función que retorna la disponibilidad de una posicion
def disponible(lista, pos):
    if lista[pos] == None:
        return True
    else:
        return False
 
 
#Metodo que mueve los datos a la derecha
def mover(lista, ini, fin):
    i = fin
    while i > ini:
        lista[i] = lista[i - 1]
        lista[i - 1] = None
        i -= 1
 
 
#Metodo que inserta un dato en una posicion especifica
def insertar(lista, elem, pos):
    #Si lista vacia, la inicializa
    if len(lista) - 1 < pos:
        iniciarLista(lista, pos)
 
    #Verifica disponibilidad del indice
    if disponible(lista, pos):
        #Indice disponible! guarda el dato
        lista[pos] = elem
    else:
        #Indice no disponible
        bandera = False
        i = pos
 
        #Recorre la lista en busca de un inidice disponible
        while i < len(lista):
            if lista[i] == None:
                bandera = True
                break
            i += 1
 
        if bandera:
            #Cuando encuentra un indice disponible, mueve los datos hasta dicho indice
            mover(lista, pos, i)
        else:
            #En caso de no encontrar indice disponible, extiende la lista y mueve los datos
            extender(lista)
            mover(lista, pos, len(lista) - 1)
        #Inserta el dato
        insertar(lista, elem, pos)
 
 
#Función main
if __name__ == "__main__":
    list = []
    print(list)
    for j in range(5):
        valor = str(input('Ingrese un dato: '))
        pos = int(input('Ingrese una posicion: '))
        insertar(list, valor, pos)
    print(list)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar