这就是我所拥有的:
ev_filt = filter(lambda x: x % 2 == 0, list1)
od_filt = filter(lambda x: x % 2 != 0, list1)
ev_list = list(ev_filt)
od_list = list(od_filt)
length = int(input("Enter the number of words yer gon pass"))
# initialize the list using for loop
for i in range(0, length):
item = int(input("Pass a number bro" + str(i+1) + " :"))
list1.append(item)
print(ev_list)
print(od_list)
我尝试继续使用此模板,但不起作用。
为什么?
我该如何解决这个问题?
正如我在评论中提到的,代码按顺序从上到下运行。在初始化之前以及列表中存在值之前,您可以将
list1
排序为奇数和偶数。交换顺序,你应该是金色的:
length = int(input("Enter the number of words yer gon pass"))
# initialize the list using for loop
list1=[]
for i in range(0, length):
item = int(input("Pass a number bro" + str(i+1) + " :"))
list1.append(item)
ev_filt = filter(lambda x: x % 2 == 0, list1)
od_filt = filter(lambda x: x % 2 != 0, list1)
ev_list = list(ev_filt)
od_list = list(od_filt)
print(ev_list)
print(od_list)
使用列表理解:
listTwo = [num for num in listOne if num % 2 == 0]
listThree = [num for num in listOne if num % 2 != 0]
这是在 Python 中创建过滤列表的更简洁、更有效的方法。在这里,listOne 将是您的原始列表,您将创建包含偶数的 listTwo 和包含奇数的 listThree。这种方法被认为更“Pythonic”,并且通常因其可读性和简洁性而受到青睐。