Python列表和范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python列表和范围相关的知识,希望对你有一定的参考价值。
我正在尝试练习我的python,所以我可以改进。我有点卡住,不知道该怎么办。我得到一个错误,说“只能连接列表(不是'int')才能列出。”我将保留我的代码以及我在下面尝试做的事情。
- 输入单词字符串(单词)
- 找到字符串的长度
- 使用range()迭代单词中的每个字母(可用于范围循环)
- 将单词中的奇数和偶数字母保存为列表 odd_letters:从索引0,2开始,...... even_letters:从索引1,3开始,......
- 打印奇数和偶数列表
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)
答案
几件事:你不能使用'+'直接将一个整数“添加”到一个列表中。使用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)
另一答案
您无法在列表中添加整数,正如您在此处尝试的那样:
even_letters = even_letters + i
您可以改为执行此操作(现在将列表添加到列表中,该列表有效):
even_letters = even_letters + [i]
或者,使用append
就地更改列表,将新元素添加到结尾:
even_letters.append(i)
另一答案
您的代码很好,但我决定为您想要的程序找到更快的解决方案。这是我的代码:
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'中的奇数。
然后,它只是向用户打印偶数和奇数列表。希望这可以帮助 :)
以上是关于Python列表和范围的主要内容,如果未能解决你的问题,请参考以下文章