Разбить список на парные элементы
ListWithCortege = [(2, 4, 2, 1, 0), (4, 2, 1, 0), (1, 1, 0), (4, 1), (1, 4, 1)]
for item in ListWithCortege:
print(item)
for element in item[0:2]:
print(element)
dict = {
(2,4):'1',
(4,2):'2',
(2,1):'3',
(1,0):'4',
(1,1):'5',
(4,1):'6'
}
Вывод:
(2, 4, 2, 1, 0)
2
4
(4, 2, 1, 0)
4
2
(1, 1, 0)
1
1
(4, 1)
4
1
(1, 4, 1)
1
4
Подскажите пожалуйста как из элементов кортежа получить поочередные пары чисел?
[((2,4),(4,2),(2,1),(1,0)), ((4,2),(2,1),(1,0)), ((1,1),(1,0)), (4,1), ((1,4),(4,1)) )]
и можно ли их потом сравнить со значениями ключей словаря?
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Можно использовать zip:
ListWithCortege = [(2, 4, 2, 1, 0), (4, 2, 1, 0), (1, 1, 0), (4, 1), (1, 4, 1)]
result = []
for cort in ListWithCortege:
result.append(tuple(zip(cort, cort[1:])))
print(result)
UPD (работает если окажется, что в списке число
for cort in ListWithCortege:
try:
result.append(tuple(zip(cort, cort[1:])))
except TypeError:
result.append(tuple([cort])) # тут напишите действия, которые нужно сделать, если элемент один.
UPD 2 работает с одноэлементным кортежом, добавляя парное значение:
for cort in ListWithCortege:
if len(cort)==1:
result.append(tuple((cort[0], -1)))
else:
result.append(tuple(zip(cort, cort[1:])))