我应该编写一个程序来消除重复值并返回唯一数字。我必须使用def eliminate(alist)
和def main()
。必须从标准输入输入数字,并且必须以空格分隔。
输出应如下
输入数字:5 3 12 3 544 5 1 7 1
数字为:[5,3,12,554,1,7]
相反,我得到......
输入数字:5 3 12 3 544 5 1 7 1
数字为:['5','','3','1','2','4','7']
如何删除空格?此外,我的程序不识别554作为单个数字,它将其识别为5 4 4。
这是我到目前为止所得到的
def eliminate(alist):
outlist = []
for element in alist:
if element not in outlist:
outlist.append(element)
return outlist
def main():
numbers=input("Enter numbers:")
alist=list(numbers)
print("The unique numbers are:",eliminate(alist))
main()
请注意:我不允许在此程序中使用set类。
答案 0 :(得分:2)
你只是给它一系列角色,并要求独特的角色,这似乎是正确的。你需要在空格上拆分字符串,甚至可能转换为数字(int's,我猜):
alist = [int(num) for num in numbers.split(' ')]
答案 1 :(得分:0)
尝试:
item for item in myList if item.count(item) == 1
用于函数体的逻辑(如果必须使用它)。将此列表理解的返回值传递给变量或打印。
答案 2 :(得分:0)
你得到''和544作为单独的字符,因为在您的输入中,numbers
不是整数列表。它是一串字符。即使将其转换为列表,它仍然是单个字符的列表。
因此,要将其转换为整数,请执行以下操作:
numbers=map(lambda x:int(x), numbers.split())
现在,要消除重复项,您可以使用字典,如果不是集合:
unique = dict.fromkeys(numbers).keys()
答案 3 :(得分:0)
如果你使用了以下两个问题将会解决:
alist = numbers.split()
而不是alist=list(numbers)
>>> numbers = '5 3 12 3 544 5 1 7 1'
>>> alist = numbers.split()
>>> alist
['5', '3', '12', '3', '544', '5', '1', '7', '1']
说明:
如果按原样将数字传递给list()函数,它会将字符串的每个字符作为列表成员。这样,'544'变为['5','4','4'],'5 6'变为['5','6']。
另一方面,split()通过根据特定的分隔符(默认情况下为“”char“)来分割字符串列表。