Я пытаюсь найти четное в списке шансов или нечетное в списке четных. Вот что у меня есть:
def even_odd_finder(numbers):
numlist = numbers.split()
evens = []
odds = []
for m in numlist:
n = int(m)
if n % 2 != 0:
odds += str(n)
else:
evens += str(n)
if len(evens) > len(odds):
this_one = odds[0]
odd_ind = numlist.index(this_one)
return "Entry " + str(odd_ind + 1) + " is odd."
else:
no_this_one = evens[0]
even_ind = numlist.index(no_this_one)
return "Entry " + str(even_ind + 1) + " is even."
Это прекрасно работает, когда я передаю ему строку из одного целого числа di git.
print(even_odd_finder("1 2 5 7 9"))
print(even_odd_finder("2 4 6 7 8"))
print(even_odd_finder("88 96 66 51 14 88 2 92 18 72 18 88 20 30 4 82 90 100 24 46"))
На третьем, хотя Я заметил, что получаю ValueError: '5' is not in list
, потому что, когда числа двойных ди git попадают в списки четных и шансов, они разбиваются дальше на свои цифры. "8"
и "8"
ставятся в четные, а не "88"
, поэтому первая запись в списке шансов odds[0]
будет '5'
, а не '51'
. Я не могу понять, почему.