Форум сайта python.su
0
Всем доброго дня. Озадачился я одним моментом.
Имеется матрица:
M=[[1,2,3], [4,5,6], [7,8,9]]
{sum(row) for row in M}
{24, 6, 15}
Отредактировано penzu (Авг. 20, 2013 12:47:40)
Офлайн
6
set([6,12,24]) #set([24, 12, 6])
M=[[1,2,3], [4,5,6], [7,8,9]] [sum(row) for row in M] #[6, 15, 24]
Офлайн
0
Прошу прощения, не понял. Можно по подробней ?
Офлайн
6
считает он всё правильно. но конструкция { … } - это set, набор. оно не гарантирует, что строчки будут в том же порядке, что зашли в неё.
если заменить { … } на
[ ... ]
>>> tuple(sum(row) for row in M) (6, 15, 24) >>> list(sum(row) for row in M) [6, 15, 24] >>> set(sum(row) for row in M) set([24, 6, 15])
Отредактировано wbt (Авг. 20, 2013 12:57:51)
Офлайн
0
Спасибо 
Офлайн
0
Может быть ты ещё знаешь…
Есть такое выражение:
{x:ord(x) for x in 'spaam'} {'a': 97, 'p': 112, 's': 115, 'm': 109}
Офлайн
6
переменая x здесь выступает переменной x 
d = dict() for x in 'spaam': d[x] = ord(x) print d # {'a': 97, 'p': 112, 's': 115, 'm': 109}
>>> for x in 'spaam': ... print x ... s p a a m
Отредактировано wbt (Авг. 20, 2013 13:14:54)
Офлайн
4
wbtсправедливости ради,
считает он всё правильно. но конструкция { … } - это set, набор. оно не гарантирует, что строчки будут в том же порядке, что зашли в неё.если заменить { … } на
Офлайн
6
в python3 { } - это set
# python3 Python 3.3.2+ (default, Aug 4 2013, 15:50:24) [GCC 4.8.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>> {1,2,3} {1, 2, 3} >>> set([1,2,3]) {1, 2, 3}
Офлайн
568
wbt,
третьего у меня под руками нет, но боюсь, что Вы не правы.
сделайте так
print( type({}) )
Офлайн