Python3.x:如何从用户输入列表中提取偶数?

Python3.x:如何从用户输入列表中提取偶数?,python,list,python-3.x,Python,List,Python 3.x,我对Python是相当陌生的,我正在尝试创建只从用户输入的列表中返回偶数的代码 我很早就创造了这个: nums = input('Enter a sequence of numbers separated by commas: ') lst = str.split(nums) print(lst) 这将返回用户给定的内容,但结果中仍将包含逗号。例如,如果我输入:5,6,7;它将显示为['5','6','7'],除此之外,我只想显示偶数。我知道我必须使用%2==0来检查这一点,但我不知道如何实现

我对Python是相当陌生的,我正在尝试创建只从用户输入的列表中返回偶数的代码

我很早就创造了这个:

nums = input('Enter a sequence of numbers separated by commas: ')
lst = str.split(nums)
print(lst)
这将返回用户给定的内容,但结果中仍将包含逗号。例如,如果我输入:5,6,7;它将显示为['5','6','7'],除此之外,我只想显示偶数。我知道我必须使用%2==0来检查这一点,但我不知道如何实现它。

如果您指定要在逗号中拆分,您可以使用列表理解来做一些事情,正如YiFei提到的:

nums = input('Enter a sequence of numbers separated by commas: ')
lst = str.split(nums,',')
print([n for n in lst if (int(n)%2) == 0])
这使得:

Enter a sequence of numbers separated by commas: 2,5,8,10
['2', '8', '10']

注意将
n
转换为
int
当选中
%2==0
时,首先需要将所有字符串项转换为整数。使用
映射
可以有效地执行此操作。在那之后,你所需要做的就是过滤掉奇数

filter(lambda x: x % 2 == 0, map(int, str.split(nums, ',')))
如果您使用的是python3,请使用
list()
将输出转换为列表


演示:


这是因为默认情况下拆分操作将空格视为分隔符。 为了解决这个问题,我们需要使用nums.split(“,”)nums这里已经是一个字符串。 但即使这样,您也可以使用空格来消除这种情况,您需要在拆分字符串之前替换字符串中的所有空格。 为此,您必须使用nums.replace(“,”)
然后必须将结果列表中的每个元素解析为整数,然后查看其是否为偶数,然后将其附加到列表中

使用int(字符串编号)将用户输入转换为整数

由于您使用列表存储数字,因此可以在列表中循环并检查每个元素是否为偶数


nums.split(“,”)是正确的语法

您可以通过两个步骤完成此操作:

  • 首先将列表中的每个项目转换为整数
  • 接下来,使用列表理解从列表中提取偶数
  • 作为旁注,如果您想在用户输入中使用逗号分割,则需要明确告诉
    str.split()



    尝试列表理解,
    lst=[i代表lst中的i,如果(int(i)%2)==0]
    。也可以方便地在开始时转换为
    int
    ,如
    nums=[int(l)代表输入中的l('输入nums:')。拆分(',')]
    。(然后使用
    %2
    逻辑。)
    >>> string = '2,5,8,12,5,6,7'
    >>> list(filter(lambda x: x % 2 == 0, map(int, str.split(string, ','))))
    [2, 8, 12, 6]
    
    >>> nums = input('Enter a sequence of numbers separated by commas: ')
    Enter a sequence of numbers separated by commas: 1,2,3,4,5,6
    >>> # Step 1
    >>> lst = [int(n) for n in nums.split(',')]
    >>> lst
    [1, 2, 3, 4, 5, 6]
    >>> # Step 2
    >>> [n for n in lst if n % 2 == 0]
    [2, 4, 6]
    >>>