我是python的新手。我正在尝试仅在列表中打印被5整除的整数。但是我希望输出是一个列表,而不仅仅是整数。
我的代码:
list = [2,4,5,10,12]
for x in list:
if not x % 5 == 0:
print (x)
我希望输出看起来像: [2,4,12]
但是,它看起来像:
2
4
12
是否有任何命令可将“ x”项打印到列表中?像print(list [x])一样?
答案 0 :(得分:1)
这就是我实现这一目标的方式。希望对您有所帮助:
list1 = [2,4,5,10,12]
list2 = []
for x in list1:
if not x % 5 == 0:
list2.append(x)
print(list2)
答案 1 :(得分:1)
您需要在新列表中收集答案,然后打印该列表。为此,您可以创建一个空列表,然后使用.append()
方法向该列表中添加项目。
my_list = [2,4,5,10,12]
answers = []
for x in my_list:
if not x % 5 == 0:
answers.append(x)
print(answers)
list comprehension是另一种选择。列表理解是一个强大的快捷方式,可以自动为您创建第二个列表。
对于此问题,您可以使用:
my_list = [2,4,5,10,12]
answers = [x for x in my_list if x%5 != 0]
print(answers)
用更少的行完成与for
循环相同的任务。在这种情况下,您可能必须使用for
版本,但将来可能需要使用理解功能。
答案 2 :(得分:0)
OP,使用以下数字[2,4,5,10,12]是“试图仅将列表中的整数打印为5。我希望输出看起来像:[2,4,12 ]“
通常,“可以被5整除的数字”可以除以5而没有余数。从给定的列表中,输出将为[5,10]
data = [2, 4, 5, 10, 12]
# Print numbers evenly divisible by 5.
print([i for i in data if i % 5 == 0])
[5, 10]
从OP提供的输出中,他正在寻找除以5的余数。
data = [2, 4, 5, 10, 12]
# Print numbers not evenly divisible by 5.
print([i for i in data if i % 5])
[2, 4, 12]