打印列表中的数字,该数字不是Python 3中3的倍数

时间:2019-02-17 05:06:08

标签: python python-3.x

给出一个数字列表,您必须在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。

8 个答案:

答案 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")