Функция sum (map ()) не работает должным образом - PullRequest
0 голосов
/ 09 июля 2020

У меня проблемы с кодом. Мне нужно подсчитать, сколько значений в списке меньше 20. Проблема в том, что в моем списке есть значения str и int.

Я пробовал следующее, но это не работает:

from numpy import mean
import sys

mylistidade = []
mylistmen = []
mylistwomen = []

count = sum(map(lambda x : x<20, mylistwomen[1::2]))

for x in range (1, 5):
    print(f'----- {x}ª PESSOA -----')
    nome = str(input('Nome: ')).strip().title()
    idade = int(input('Idade: '))
    sexo = str(input('Sexo [M/F}: ')).upper()
    if sexo == 'M' or sexo == 'F':
        pass
    else:
        print('Digite um valor válido no campo Sexo!')
        sys.exit()
    if sexo == 'M':
        mylistmen.append(nome)
        mylistmen.append(idade)
    else:
        mylistwomen.append(nome)
        mylistwomen.append(idade)
   
    mylistidade.append(idade)
   
print(mylistmen)
print(mylistwomen)
print(f'The average age for the group is {mean(mylistidade)}!')
position = mylistmen.index(max(mylistmen[1::2]))
print(f'The oldest man has {max(mylistmen[1::2])} years and it is called', end=' ')
print(f'{mylistmen[position-1]}')
print(f'There is {count} women that has less than 20 years!')

Я хотел бы придерживаться своего решения sum(map()). Просто нужна помощь, чтобы понять, что мне не хватает.

Ответы [ 2 ]

0 голосов
/ 09 июля 2020

Попробуйте это count = sum (map (lambda x: x if type (x) == 'int' и x <20, mylistwomen [1 :: 2])) </p>

0 голосов
/ 09 июля 2020

Вы должны переместить счет под l oop

from numpy import mean
import sys

mylistidade = []
mylistmen = []
mylistwomen = []

for x in range (1, 5):
    print(f'----- {x}ª PESSOA -----')
    nome = str(input('Nome: ')).strip().title()
    idade = int(input('Idade: '))
    sexo = str(input('Sexo [M/F}: ')).upper()
    if sexo == 'M' or sexo == 'F':
        pass
    else:
        print('Digite um valor válido no campo Sexo!')
        sys.exit()
    if sexo == 'M':
        mylistmen.append(nome)
        mylistmen.append(idade)
    else:
        mylistwomen.append(nome)
        mylistwomen.append(idade)
   
    mylistidade.append(idade)

count = sum(map(lambda x : x<20, mylistwomen[1::2]))
   
print(mylistmen)
print(mylistwomen)
print(f'The average age for the group is {mean(mylistidade)}!')
position = mylistmen.index(max(mylistmen[1::2]))
print(f'The oldest man has {max(mylistmen[1::2])} years and it is called', end=' ')
print(f'{mylistmen[position-1]}')
print(f'There is {count} women that has less than 20 years!')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...