首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python3.x:如何从用户输入列表中提取偶数?

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

Stack Overflow用户
提问于 2017-07-03 01:42:19
回答 5查看 2.3K关注 0票数 2

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

我很早就创造了这个:

代码语言:javascript
代码运行次数:0
运行
复制
nums = input('Enter a sequence of numbers separated by commas: ')
lst = str.split(nums)
print(lst)

这将返回用户给出的内容,但是逗号仍然在结果中。例如,如果我输入: 5,6,7,它将作为'5,‘,'6,’,'7‘在修复上面,我只想显示偶数。我知道我必须使用%2 == 0检查这一点,但我不知道如何实现它。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-07-03 01:59:24

您可以分两步完成此操作:

  1. 首先将列表中的每一项转换为整数。
  2. 接下来,使用列表理解从列表中提取偶数。

另外,如果您想在用户输入中拆分逗号,则需要显式地告诉str.split()

代码语言:javascript
代码运行次数:0
运行
复制
>>> 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]
>>>
票数 2
EN

Stack Overflow用户

发布于 2017-07-03 01:50:28

首先,需要将所有字符串项转换为整数。您可以使用map高效地完成这一任务。在此之后,您所需要做的就是去掉奇数。

代码语言:javascript
代码运行次数:0
运行
复制
filter(lambda x: x % 2 == 0, map(int, str.split(nums, ',')))

如果使用python3,则将输出转换为带有list()的列表。

演示:

代码语言:javascript
代码运行次数:0
运行
复制
>>> string = '2,5,8,12,5,6,7'
>>> list(filter(lambda x: x % 2 == 0, map(int, str.split(string, ','))))
[2, 8, 12, 6]
票数 4
EN

Stack Overflow用户

发布于 2017-07-03 01:50:15

如果指定为split(),要在逗号中拆分,可以使用YiFei提到的列表理解进行如下操作:

代码语言:javascript
代码运行次数:0
运行
复制
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])

这意味着:

代码语言:javascript
代码运行次数:0
运行
复制
Enter a sequence of numbers separated by commas: 2,5,8,10
['2', '8', '10']

注意,在检查n时,要将%2==0转换为%2==0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44876704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档