2014-12-13 4 views
-1

ищет решение, но не может найти. Мне нужно создать программу, которая запрашивает у пользователя список целых чисел, сохраняет в другом списке только уникальные целые числа (например, от 1 до 10) и отображает результирующий список. На данный момент у меня есть программа, которая просто копирует полный список и печатает его без сортировки целых чисел:уникальные значения в списке из другого списка

def inputnumber(): 
    numbers = input('Enter number(s): ').split(',') 
    return [int(i) for i in numbers] 

x = inputnumber() 
y = x[:] 
print(y) 

и жаль, ребята, я просто новичок и просто попробовать все. Должен ли я работать с функцией del theres другим способом?

+1

Преобразование в [набор] (https://docs.python.org/2/library/stdtypes.html#set). Устанавливает только уникальные значения. – khelwood

+0

theres все равно колено-рывки, которые отрицательно скажутся на отрицательном уровне или я прошу не так? Я только начал изучать списки, последовательности и кортежи. Никогда не слышал о заданной функции – Dinozauras

+1

@ Dinozauras Как насчет того, чтобы вы потратили несколько минут [узнать их] (https://docs.python.org/2/tutorial/datastructures.html#sets)? Наборы - это весело! Итак, мы изучаем новые конструкции на языке программирования, которые помогут вам решить ваши проблемы. –

ответ

0

Вы можете попробовать преобразовать список в набор.

def inputnumber(): 
    numbers = input('Enter number(s): ').split(',') 
    return [int(i) for i in numbers] 

x = inputnumber() 
y = set(x) 
print(y) 

Как отмечали @khelwood, наборы содержат только уникальные значения, что означает, что все дубликаты будут удалены.

Также имейте в виду, что наборы не упорядочены, поэтому номера могут отображаться в смешанном порядке.

+0

теперь я полностью смущен, так как я никогда не слышал об этой заданной вещи, все еще не уверен, как я получу уникальные значения (это связано с функциями s.remove или s.discard?) – Dinozauras

+0

Список - это коллекция элементов (номера в этом случае) и сохраняет порядок этих элементов. Если вы добавите 1, 2 и 3; вы получите 1 2 3 в том же порядке. Однако набор содержит только уникальные элементы. Если вы попытаетесь добавить дубликаты, это просто отменит их. Недостатком является то, что наборы не помнят порядок добавления элементов к ним. –

+0

, так что если человек будет вводить запрос 1, 11, 22, 6, 5 (когда я запускаю программу), мне нужна программа, чтобы дать мне результат [1, 6, 5]. Действительно ли это ключ? Если это так, я бы начал искать правильный ответ – Dinozauras

0

вы можете использовать set для удаления дублирования:

def inputnumber(): 
    numbers = input('Enter number(s): ').split(',') 
    return set([int(i) for i in numbers]) 
1

Обратите внимание, что если вы используете только set, вы не получите list, но другой вид типа, так что вы должны сделать это:

MyList = list(set(something)) 
Смежные вопросы