我想打印带有奇数或偶数的字母(字符串)作为索引并将其保存为列表

时间:2018-07-18 16:04:53

标签: python python-3.x if-statement range

我要打印并保存该单词“ 复杂性”的字母;我想遍历单词并获取每个以偶数作为索引的字母,将其存储或保存在列表中,还要获取每个以奇数作为字母的字母索引,并将其另存为列表。下面是代码。

word = "complexity"
even_letters = ""
odd_letters = ""
for index in range(0,len(word)):

    if int(index) % 2 == 0:
       even_letters = word[index]
   else:
        odd_letters = word[index]

print(list(even_letters))
print(list(odd_letters))

但是我的结果仅显示以下内容:

  

['t']

     

['y']

我在做什么错了?

3 个答案:

答案 0 :(得分:2)

您正在覆盖字符串,而不是添加到它们。

更改

even_letters = word[index]

收件人

even_letters += word[index]

=重新分配(覆盖)。 +=追加(添加)。

答案 1 :(得分:1)

如果如您所说,要将不同的字母保存为列表,则必须将even_letters和odd_letters初始化为列表,并且必须附加字母,而不重置其值。 如果我是您,我还将在python中使用enumerate选项,以便您可以同时获取索引和字母。

word = "complexity"
even_letters = []
odd_letters = []
for index, letter in enumerate(word):
    if index % 2 == 0:
        even_letters.append(letter)
    else:
        odd_letters.append(letter)
print(list(even_letters))

print(list(odd_letters))

如果要获取字符串而不是列表,则可以更改     even_letters =字母 和     奇数=字母 对于     even_letters + =字母     奇数字母+ =字母

答案 2 :(得分:1)

使用列表推导可以更轻松地完成此操作:

even_letters = [c for i, c in enumerate(word) if i % 2 == 0]
odd_letters = [c for i, c in enumerate(word) if i % 2 == 1]