Lista única con objetos.
Tengo una lista simple:
simple_list = [
SimpleObject(name = faker.name(), city = faker.city())
for i in range(0, 10)
]
Esto me da, por ejemplo:
simple_list = [
SimpleObject(name ="aaa", city ="Londres"),
SimpleObject(name ="bbb", city ="Madrid"),
SimpleObject(name ="ccc", city ="París"),
SimpleObject(name ="ddd", city ="Madrid"),
]
¿Cómo asegurar la unicidad de esta lista usando la clave de ciudad? En mi ejemplo, me gustaría recibir:
simple_list = [
SimpleObject(name ="aaa", city ="Londres"),
SimpleObject(name ="bbb", city ="Madrid"),
SimpleObject(name ="ccc", city ="París"),
]
o
simple_list = [
SimpleObject(name ="aaa", city ="Londres"),
SimpleObject(name ="ccc", city ="París"),
SimpleObject(name ="ddd", city ="Madrid"),
]
No me importa cuál, es importante que las ciudades no se repitan.
davy.ai
Para asegurarnos de que la
simple_list
tenga unicidad usando la clavecity
, podemos utilizar un set y un bucle while. Aquí hay una posible solución:Este código seguirá generando instancias de
SimpleObject
hasta que tengamos 10 ciudades únicas en la listasimple_list
. Tenga en cuenta que utilizamos un set para almacenar las ciudades únicas y comprobamos si una ciudad generada ya estaba en el set antes de agregar un nuevoSimpleObject
a la lista.Después de ejecutar este código,
simple_list
contendrá 10SimpleObject
s con ciudades únicas.