Вопрос про if в списке
Вкратце, такая задача: есть список животных в зоопарке. Если совпадает тип и разный гендер, то вывести i из animals
Такой код получился у меня:
f = open('input.txt', 'r')
animals = f.readlines()
animal = []
for i in animals:
animal.append([i])
animals = [animal[j][0].split(", ") for j in range(len(animal))]
types = []
gender = []
for i in animals:
types.append(i[1])
gender.append(i[2])
if .........?:
print(i)
Должен быть вывод:
['1', 'cat', 'male', 'goroh', '01.01.2012', '02.12.2015\n']
['3', 'cat', 'female', 'goroh', '01.01.2012', '02.12.2015\n']
['4', 'elephant', 'male', 'goroh', '01.01.2012', '02.12.2015\n']
['7', 'elephant', 'female', 'goroh', '01.01.2012', '02.12.2015']
Я сделал отдельные списки для гендера и типа, но не понимаю, что с ним дальше делать. Перепробовал разные условия. Если нужно, то могу добавить к коду. Но это будет просто посмеяться. Как реализовать такую задачу?
Текстовый файл:
1, cat, male, goroh, 01.01.2012, 02.12.2015
2, dog, male, goroh, 01.01.2012, 02.12.2015
3, cat, female, goroh, 01.01.2012, 02.12.2015
4, elephant, male, goroh, 01.01.2012, 02.12.2015
5, tiger, male, goroh, 01.01.2012, 02.12.2015
6, gepard, male, goroh, 01.01.2012, 02.12.2015
7, elephant, female, goroh, 01.01.2012, 02.12.2015
Ответы (1 шт):
Автор решения: DwayneBarry
→ Ссылка
Ну если ты знаешь, что у тебя максимум 1 пара животных, то мой код будет работать:
with open('input.txt') as f:
animals = f.readlines()
animal = []
for i in animals:
animal.append([i])
animals = [animal[j][0].split(", ") for j in range(len(animal))]
animals = sorted(animals, key=lambda x: x[1]) # сортируем животных по именам, чтобы если были 2 одинаковых, то они шли друг за другом
oldAnimal = 'Тут должны быть не менее трёх любых символов'# тут просто создаём переменную, и чтобы компилятор не ругался на [1] или [2], делаем переменную строкой
for animal in animals:
if animal[1] == oldAnimal[1] and animal[2] != oldAnimal[2]:
print(oldAnimal)
print(animal)
oldAnimal = animal