Найти - Пользователи
Полная версия: подскажите пожалуйста как сконструировать список
Начало » Python для новичков » подскажите пожалуйста как сконструировать список
1 2
beliy_shum
list1=[([item],[item2]) for item in prefs for item2 in prefs if item!=item2 ]
таким образом у меня в списке получаться все комбинации между элементами первого уровня многоуровнего словаря prefs.
а я хочу получить только уникальные.

if item!=item2 это всё что я смог придумать((((
pythonwin
beliy_shum, опиши, пожалуйста, всё задачу, а есть кусок кода который работает но делает не совсем то что тебе нужно
kostyasa
beliy_shum
во-первых сравнение работает при двух знаках равно
item! == item2
beliy_shum
есть словарь prefs ={'варрвр':45,'арр':458,'унуег':863,'аполдььт':456}
pythonwin
в новый словарь нужно записать все уникальные комбинации

ключей из словаря prefs

все эти уникальные комбинации нужно записать в список list1

kostyasa Стандартные операции сравнения записываются так же, как и в C: < (меньше чем), > (больше чем), == (равно), <= (меньше или равно), >= (больше или равно) и != (не равно). http://ru.wikibooks.org/wiki/%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA_Python_3.1#.D0.9F.D0.B5.D1.80.D0.B2.D1.8B.D0.B5_.D1.88.D0.B0.D0.B3.D0.B8_.D0.BA_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8E
beliy_shum
мне нужно получить все уникальные сочетания длиной два между ключами. 1, 2 и 2 ,1 считаются одинаковыми


как это сделать элегантно по питоновски?
Андрей Светлов
>>> l1 = [1, 2, 3, 4, 5]
>>> [(a, b) for a in l1 for b in l1 if a<b]
[(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)]
beliy_shum
Андрей Светлов
Хитрюга!
а если такой список : l=
Андрей Светлов
Лентяй!
А попробовать?
>>> l=['ff',45,'ey']
>>> [(a, b) for a in l for b in l if a<b]
[(45, 'ff'), (45, 'ey'), ('ey', 'ff')]
beliy_shum
!!!!!!!!!!!!!!!!!!!!!!!!!
>>> l=['ff',45, 'ey']
>>> [(a,b) for a in l for b in l if a<b]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
TypeError: unorderable types: str() < int()
>>>
ZAN
beliy_shum
!!!!!!!!!!!!!!!!!!!!!!!!!
>>> l=['ff',45, 'ey']
>>> [(a,b) for a in l for b in l if a<b]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
TypeError: unorderable types: str() < int()
>>>
py3k?
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