Listas & Diccionarios

Veamos algunos ejemplos:

prog/jugando_listas.py

#!/usr/bin/env python3

# Crear una lista de veinte elementos aleatorios entre 1 y 10
# Mostrar:
#   La lista ordenada
#   El numero mayor
#   El numero menor
#   Cuantas veces aparece en la lista el numero mayor

import random

def lista_aleatoria(cantidad, minimo=1, maximo=10):
    lista = list()
    for i in range(cantidad):
        numero = random.randint(minimo, maximo)
        lista.append(numero)
    return lista

def busco_max(lista):
    maximo = lista[0]
    for item in lista[1:]:
        if item > maximo:
            maximo = item
    return maximo

def busco_min(lista):
    minimo = lista[0]
    for item in lista[1:]:
        if item < minimo:
            minimo = item
    return minimo

def ordenamos(lista):
    for passnum in range(len(lista)-1,0,-1):
        for i in range(passnum):
            if lista[i] > lista[i+1]:
                lista[i], lista[i+1] = lista[i+1], lista[i]

CANT = 20

print("Genero una lista de {} numeros".format(CANT))
lista = lista_aleatoria(CANT)
print(lista)
print("La muestro ordenada...")
# La ordenamos
lista.sort()
# La mostramos
print(lista)
maximo = busco_max(lista)
print("El maximo de la lista es: {}".format(maximo))
repeticiones_maximo = lista.count(maximo)
print("El maximo aparece en la lista {} veces".format(repeticiones_maximo))
minimo = busco_min(lista)
print("El minimo de la lista es: {}".format(minimo))

prog/mayores_a.py

#!/usr/bin/env python3

# Dada una lista de numeros enteros y un numero n generar otra lista
# (y mostrarla) con todos los numeros de la lista que sean mayores a n.
#
# Ej.
# numeros = [10, 20, 30, 40, 50, 60]
# n = 45
#
# ---> nueva = [50, 60]

def mayores_a(lista, n):
    nueva_lista = list()  # nueva_lista = []
    for numero in lista:
        if numero > n:
            # agrego numero a la lista.
            nueva_lista.append(numero)

    return nueva_lista

numeros = [10, 20, 30, 40, 50, 60]
n = 45

print(mayores_a(numeros, n))


numeros = [210, 120, 30, 440, 5, 60]
n = 45

print(mayores_a(numeros, n))


# Si la lista es ordenada...

def mayores_a2(lista, n):
    nueva_lista = list()  # nueva_lista = []
    for numero in lista:
        if numero > n:
            indice = lista.index(numero)
            break
    return lista[indice:]

numeros = [10, 20, 30, 40, 50, 60]
n = 45

print(mayores_a2(numeros, n))

numeros = [210, 120, 30, 440, 5, 60]
n = 45

print(mayores_a2(numeros, n))


def mayores_a3(lista, n, ordenada):
    if ordenada:
        return mayores_a2(lista, n)
    else:
        return mayores_a(lista, n)


numeros = [10, 20, 30, 40, 50, 60]
n = 45

print(mayores_a3(numeros, n, True))

numeros = [210, 120, 30, 440, 5, 60]
n = 45

print(mayores_a3(numeros, n, False))
print(mayores_a3(numeros, n, True))

def mayores_a4(lista, n, ordenada=True):
    if ordenada:
        return mayores_a2(lista, n)
    else:
        return mayores_a(lista, n)


numeros = [10, 20, 30, 40, 50, 60]
n = 45

print(mayores_a4(numeros, n))

numeros = [210, 120, 30, 440, 5, 60]
n = 45

print(mayores_a4(numeros, n, False))
print(mayores_a4(numeros, n))


print(mayores_a4(ordenada=False, n=n, lista=numeros))

prog/letras.py

#

frase = "una frase cualquiera"
letras = {}

for le in frase:
    if le in letras.keys():
        letras[le] = letras[le] + 1
    else:
        letras[le] = 1

print(letras)