我正在尝试练习我的python,所以我可以改进。我有点卡住,不知道该怎么办。我收到一个错误,说“只能将列表(不是'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)
答案 0 :(得分: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)
答案 1 :(得分:1)
您无法在列表中添加整数,正如您在此处尝试的那样:
even_letters = even_letters + i
您可以改为执行此操作(现在将列表添加到列表中,该列表有效):
even_letters = even_letters + [i]
或者,使用append
就地更改列表,将新元素添加到结尾:
even_letters.append(i)
答案 2 :(得分:1)
很少的事情: 你不能"添加"使用' +'直接到列表的整数。使用append()是最好的。 str和str类型可以使用' +'来连接。所以您可以将odd_letters和even_letters更改为str,如下所示。
另外,通过添加' i'对于偶数和奇数,您正在添加迭代变量值。 由于您希望附加字母,您需要参考列表索引,即word [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)
答案 3 :(得分:1)
您的代码很好,但我决定为您想要的程序找到更快的解决方案。这是我的代码:
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)
变量'字'接受用户的话。列表' store_1'使用列表理解来分隔单词中的字母并存储它。接下来,我列举了' store_1'并使用变量' store_2'仅存储' store_1'的索引。
接下来,我宣布另一个变量' even_numbers'使用列表推导来遍历' store_2'并找到偶数。下一个变量' odd_numbers'还使用列表推导来查找' store_2'中的奇数。
然后,它只是向用户打印偶数和奇数列表。希望这会有所帮助:)
答案 4 :(得分:0)
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)
这是每个单词都适用的答案,并且符合所有要求。