Найти - Пользователи
Полная версия: списки и работа с ними
Начало » Центр помощи » списки и работа с ними
1 2
ZigertoN
Доброе время суток. Возникла проблема в создание списка.
def Zlst1():
lst1 = []
y=1
print "Zapolnenei spiska 1:"
while y==1:
x = input()
if x == "end":
y=0
else:
lst1.append(x)
вот так создаю список, но выдает ошибку:

Zapolnenei spiska 1:
Panasonic
Traceback (most recent call last):
File "C:\Users\Сергей\Documents\NetBeansProjects\spiski\src\spiski.py", line 15, in <module>
lst1 = Zlst1()
File "C:\Users\Сергей\Documents\NetBeansProjects\spiski\src\spiski.py", line 8, in Zlst1
x = input()
File "<string>", line 1, in <module>
NameError: name 'Panasonic' is not defined
regall
Функция input() Выполняет подачу кода на исполнение интерпретатору. Используйте raw_input().
ZigertoN
Спасибо. Есть еще вопрос. Есть ли такая функция для списков чтоб выполняла следующее: удаляла элементы из первого списка которые присутсвуют во втором списке.
regall
ZigertoN
Спасибо.  Есть еще вопрос. Есть ли такая функция для списков чтоб выполняла следующее: удаляла элементы из первого списка которые присутсвуют во втором списке.
Встроенной функции нет. Если все элементы внутри списка уникальны, то можете воспользоваться множествами:
>>> x = [1,2,3,4,5]
>>> y = [1,2,3]
>>> x = set(x)
>>> y = set(y)
>>> x-y
set([4, 5])
Если нет - пишите вручную, либо исключайте соответствующие значения при формировании списка.
ZigertoN
Написал вручную:
def Zlst3(lst1,lst2): 
lst3 = []
n = 0
m = 0
x = 1
while x == 1:
while lst1[0+n] == lst2[0+m]:
m=m+1
if lst2[0+m] == lst2[-1]:
n = n+1
m = 0
lst3.append(lst1[0+n])
n = n+1
if lst1[0+n] == lst1[-1]:
x = 0
print lst3
return lst3
так то вроде все правельно но не работает. А так же смущает :
lst2[0+m] == lst2[-1]
если элементы повторяющиеся то так делать нельзя, подскажите как сказать ему чтоб когда доходит до последнего элемента он тормозил.
sp3
зачем все усложнять
for element in lst1:
if element in lst2:
....
PROFIT
ZigertoN
непонял, обьясните пожалуйсто
regall
lst3 = [element for element in lst1 if not element in lst2]
ZigertoN
Спасибо, работает
ZigertoN
Добрый день. Подскажите как изминить код чтоб можно было создавать вложеные списки
def Zlst():
lst = []
y=1
while y==1:
x = raw_input()
if x == "end":
y=0
else:
lst.append(x)
return lst
например чтоб ввод осушествлялся так
x=
1
2
3
4,5
6
7
print x
[1, 2, 3, [4, 5], 6, 7]
а еще вопрос будет ли ниже написаная функция работать со вложеными списками? если нет то подскажи как реализовать чтоб работала

lst3 = [element for element in lst1 if not element in lst2]
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB