Я пытаюсь попрактиковаться в питоне, чтобы стать лучше. Я как бы застрял и не знаю, что делать дальше. Я получаю сообщение об ошибке "можно только объединить список (не int) в список". Я оставлю свой код и то, что я пытаюсь сделать, ниже.
печатать нечетные и четные списки
word = input("Type: ")
word = list(word)
print(word)
odd_letters = []
even_letters = []
length = int(len(word))
for i in range(length):
if i/2 == 0:
even_letters = even_letters + i
elif i/2 != 0:
odd_letters = odd_letters + i
print(even_letters)
print(odd_letters)





Вы не можете добавить целое число в список, как вы пытались сделать здесь:
even_letters = even_letters + i
Вместо этого вы можете сделать это (который теперь добавляет список в список, который действителен):
even_letters = even_letters + [i]
Или используйте append, чтобы изменить список на месте, добавив новый элемент в конец:
even_letters.append(i)
Немногое: Вы не можете «добавить» целое число напрямую в список с помощью '+'. Лучше всего использовать append (). Типы str и str можно объединить с помощью '+', чтобы вы могли изменить odd_letters и even_letters на str, как показано ниже.
также, добавляя «i» к четному и нечетному, вы добавляете значение переменной итерации. Поскольку вы хотите, чтобы буква была добавлена, вам нужно указать индекс списка, то есть слово [i]
и первая буква введенного будет в нечетной позиции :)
word = input("Type: ")
word = list(word)
print(word)
odd_letters = ''
even_letters = ''
length = int(len(word))
for i in range(1,length+1):
if i%2 == 0:
even_letters = even_letters + word[i-1]
else:
odd_letters = odd_letters + word[i-1]
print("even_letters",even_letters)
print("odd_letters",odd_letters)
Большое спасибо. Это многое прояснило для меня. Хороший день!
Ваш код хорош, но я решил найти более быстрое решение для нужной вам программы. Это мой код:
word = str(input("Enter word:"))
store_1 = [x for x in word]
store_2 = []
for idx, val in enumerate(store_1):
store_2.append(idx)
even_numbers = [y for y in store_2 if y%2 == 0]
odd_numbers = [z for z in store_2 if z%2 == 1]
print("List of Even numbers:",even_numbers)
print("List of Odd numbers:",odd_numbers)
Переменная word принимает слово пользователя. Список store_1 использует понимание списка, чтобы разделить буквы в слове и сохранить его. Затем я пронумеровываю store_1 и использую переменную store_2 только для хранения индексов store_1.
Затем я объявляю другую переменную even_numbers, которая использует понимание списка для перебора store_2 и поиска четных чисел. Следующая переменная odd_numbers также использует понимание списка для поиска нечетных чисел в store_2.
Затем он просто выводит пользователю четные и нечетные списки. Надеюсь это поможет :)
Спасибо, я многому научился, просматривая коды людей. Это было действительно полезно!
Я написал это ... Сообщите мне, что вы думаете ...
word = input("Choose a word to test: ")
word_len = len(word)
print(word," contains ",word_len," letters")
odd_letters = []
even_letters = []
for i in range(1,len(word),2):
even_letters.append(word[i])
for i in range(0,word_len,2):
odd_letters.append(word[i])
print("Odd letters are: ",odd_letters)
print("Even letters are: ",even_letters)
word=input()
word_num=len(word)
print(word_num)
odd_num=[]
even_num=[]
for letters in range(0,word_num,2):
odd_num.append(word[letters])
for letters in range(1,word_num,2):
even_num.append(word[letters])
print(odd_num)
print(even_num)
Это ответ: он работает с каждым словом и соответствует всем требованиям.
Используйте
even_letters.append(i)(и то же самое для нечетных). Как было сказано, добавление может быть выполнено только с двумя списками.