Форум сайта python.su
Доброе время суток. Возникла проблема в создание списка.
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
Офлайн
Функция input() Выполняет подачу кода на исполнение интерпретатору. Используйте raw_input().
Офлайн
Спасибо. Есть еще вопрос. Есть ли такая функция для списков чтоб выполняла следующее: удаляла элементы из первого списка которые присутсвуют во втором списке.
Офлайн
ZigertoNВстроенной функции нет. Если все элементы внутри списка уникальны, то можете воспользоваться множествами:
Спасибо. Есть еще вопрос. Есть ли такая функция для списков чтоб выполняла следующее: удаляла элементы из первого списка которые присутсвуют во втором списке.
>>> x = [1,2,3,4,5]
>>> y = [1,2,3]
>>> x = set(x)
>>> y = set(y)
>>> x-y
set([4, 5])
Офлайн
Написал вручную:
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]
Офлайн
зачем все усложнять
for element in lst1:
if element in lst2:
....
PROFIT
Офлайн
непонял, обьясните пожалуйсто
Офлайн
lst3 = [element for element in lst1 if not element in lst2]
Офлайн
Спасибо, работает
Офлайн
Добрый день. Подскажите как изминить код чтоб можно было создавать вложеные списки
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]
Офлайн