una - recorrer dos listas a la vez python
repite en 2 listas, repitiendo la más corta hasta el final de la más larga (2)
Suponiendo que la
es más larga que lb
:
>>> import itertools
>>> [x+''_''+y for x,y in zip(la, itertools.cycle(lb))]
[''a1_b1'', ''a2_b2'', ''a3_b1'', ''a4_b2'']
itertools.cycle(lb)
devuelve un iterador cíclico para los elementos enlb
zip(...)
devuelve una lista de tuplas en la que cada elemento corresponde a un elemento enla
junto con el elemento correspondiente en el iterador.
Estoy seguro de que hay una forma fácil y obvia de hacer esto, pero he estado buscando en Google y leyendo los documentos y simplemente no puedo encontrar nada.
Esto es lo que quiero lograr:
la = [''a1'',''a2'',''a3'',''a4'']
lb = [''b1'',''b2'']
result = [''a1_b1'',''a2_b2'',''a3_b1'',''a4_b2'']
Tengo una lista de fechas y algunas de ellas tienen algo marcado. Luego tengo una lista de fechas mucho más grande y quiero poner la lista más pequeña dentro de la lista más grande tantas veces como sea posible. Probablemente requerirá algún tipo de bucle ya que necesito acceso a las fechas en la lista más grande para el resultado final.
Por alguna razón no puedo ver una buena manera de hacer esto.
Tratar
result = ["_".join((i, j)) for i, j in itertools.izip(la, itertools.cycle(lb))]