给出一个数字列表,您必须在python 3中打印那些不是3的倍数的数字
输入格式:
第一行包含用空格分隔的数字列表。
输出格式:
将数字打印在一行中,并用空格隔开,该空格不是3的倍数。
示例:
输入:
1 2 3 4 5 6
输出:
1 2 4 5
说明:
此处元素为1,2,3,4,5,6,并且由于3,6是3的倍数,因此将其删除后,列表就剩下1,2,4,5。
答案 0 :(得分:0)
使用模运算符。 (%)此运算符将从第一个参数除以第二个参数得到余数。因此,当您想要的数字不是3的倍数时,另一种说法就是寻找除以3的余数不是0的数字。
x % 3 != 0.
答案 1 :(得分:0)
逻辑非常简单,您需要从列表中删除所有可被3整除的数字。
由于使用列表,因此可以使用list.remove(item)方法。
并且输出应以空格分隔,以便可以使用项目之间的空格将项目列表连接在一起,
以下代码可以解决问题
numbers = input()
list = numbers.split()
for item in list:
if int(item)%3==0:
list.remove(item)
print(' '.join(list))
输入:1 2 3 4 5 6
输出: 1 2 4 5
答案 2 :(得分:0)
list(filter(lambda x: x%3 != 0 , yourlist))
答案 3 :(得分:0)
请不要仅仅复制您的nptel分配问题并寻求解决方案,而是先尝试解决并找出错误所在,输入方式以及所需的输出内容。我以前也被困在这项作业上。 无论如何,这是应该可以正常工作的解决方案,如果能够完成工作,请不要忘记单击此帖子左侧的对勾以接受该解决方案。
x = input()
num = list(map(int, x.split()))
l =[]
for i in num:
if i%3 != 0:
l.append(i)
print(*l, sep = " ")
答案 4 :(得分:0)
@Souvikavi的答案看起来不错。但是for循环可以简化为:
numbers = input()
list = numbers.split()
newList = [item for item in list if int(item)%3!=0]
print(' '.join(newList))
或:
numbers = input()
newList = [item for item in numbers.split() if int(item)%3!=0]
print(' '.join(newList))
甚至:
numbers = input()
print(' '.join([item for item in numbers.split() if int(item)%3!=0]))
答案 5 :(得分:0)
有多种单线解决方案。怎么样:
print(*(item for item in map(int, input().split()) if item % 3))
答案 6 :(得分:0)
a=list(map(int,input().split()))
b=list()
for i in range(len(a)):
if a[i]%3!=0:
b.append(a[i])
print(*b,sep=" ")
在上面的代码中使用两个列表a和b。不是列表a的3的倍数的数字被附加到列表b上,并且列表b被打印出
答案 7 :(得分:0)
n=(input("How many number you want to insert in a list"))
list=[ ]
for i in range(0,n):
a=int(input("enter elements"))
list.append(a)
for i in(list):
if(i%3!=0):
print(i,"are not multiply of 3")
else:
print("multiply of 3")