Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 8, 2016 20:37:07

NailDer
Зарегистрирован: 2016-12-08
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск совпадающих элементов в списках

Выдает ошибку при выполнении.

 Поиск совпадающих элементов!
1-й список: [2, False, 9.1, (2-1j), 'hello', 5, 'Python']
2-й список: [5, 3, 'HELLO', 7, 12.5, 'Python', True, False]
Совпадают:
1-й элемент из 1-го списка и 7-й элемент из 2-го списка и 
Traceback (most recent call last):
  File "1111.py", line 18, in <module>
    if A[i]==B[k]:
IndexError: list index out of range
Надо просмотреть оба списка, найти одинаковые элементы, ели найдены вывести сообщение на экран. Только начал изучать циклы, через цикл for получилось хотел попробовать через While. Спасибо за помощь!
 print("Поиск совпадающих элементов!")
n=7
# Первый список
A=[2,False,9.1,2-1j,"hello",5,"Python"]
# Второй список
B=[5,3,"HELLO",7,12.5,"Python",True,False]
# Отображаем содержимое первого списка
print("1-й список:",A)
# Отображаем содержимое второго списка
print("2-й список:",B)
print("Совпадают:")
i=0
while i<=n:
	    i=i+1
	    k=0
	    while k<=n:
	    	k=k+1
	    	if A[i]==B[k]:
	    		txt=str(i)+"-й элемент из 1-го списка и "
	    		txt=txt+str(k)+"-й элемент из 2-го списка и "
	    		print(txt)
print("Программа завершенна!")

Офлайн

#2 Дек. 9, 2016 03:23:18

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Поиск совпадающих элементов в списках

NailDer
 while i<=n:
Надо убрать равно, так как индекса 7 нет. 0 1 2 3 4 5 6 - семь индексов.



Офлайн

#3 Дек. 9, 2016 10:34:46

NailDer
Зарегистрирован: 2016-12-08
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск совпадающих элементов в списках

 print("Поиск совпадающих элементов!")
n=8
# Первый список
A=[2,False,9.1,2-1j,"hello",5,"Python",12.5]
# Второй список
B=[5,3,"HELLO",7,12.5,"Python",True,False]
# Отображаем содержимое первого списка
print("1-й список:",A)
# Отображаем содержимое второго списка
print("2-й список:",B)
print("Совпадают:")
i=0
while i<=n:
	k=0
	while k<=n:
		if A[i]==B[k]:
		    txt=str(i)+"-й элемент из 1-го списка и "
		    txt=txt+str(k)+"-й элемент из 2-го списка и "
		    print(txt)
		k=k+1
	i=i+1
print("Программа завершенна!")
Поправил код и программа начала выполняться. Спс за помощь!

Отредактировано NailDer (Дек. 9, 2016 10:43:15)

Офлайн

#4 Дек. 9, 2016 10:56:52

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Поиск совпадающих элементов в списках

NailDer
Только начал изучать циклы, через цикл for получилось хотел попробовать через While.
Слудующим шагом логично будет обойтись вообще без явного использования циклов. Это будет самое питоник-вейное решение.



Офлайн

#5 Дек. 9, 2016 13:51:38

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Поиск совпадающих элементов в списках

NailDer
Поправил код и программа начала выполняться.
Надо убрать равно в условии цикла.
  
while i < n:
иначе ты прокручиваешь цикл 9 раз.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version