Форум сайта python.su
У меня есть лист словарей(каждый раз номер этих словерей меняеться так как я нахожу их по ключу)
в такой форме:
list({a:[ ['one':1] , ['two':1], ['three':2] ]} , {b:[ ['one':1] , ['four':1], ['five':2] ]})
'one'
Офлайн
Я честно прочитал написанное трижды. Трижды я честно пытался понять. Трижды у меня не вышло. Попробуйте переформулировать, что ли…
Офлайн
Slow
Я честно прочитал написанное трижды.
Lena13_08А чего тут читать.
У меня есть лист словарей
>>> list({a:[ ['one':1] , ['two':1], ['three':2] ]} , {b:[ ['one':1] , ['four':1], ['five':2] ]}) Traceback (most recent call last): File "C:\comp\Python35\lib\code.py", line 64, in runsource code = self.compile(source, filename, symbol) File "C:\comp\Python35\lib\codeop.py", line 168, in __call__ return _maybe_compile(self.compiler, source, filename, symbol) File "C:\comp\Python35\lib\codeop.py", line 99, in _maybe_compile raise err1 File "C:\comp\Python35\lib\codeop.py", line 87, in _maybe_compile code1 = compiler(source + "\n", filename, symbol) File "C:\comp\Python35\lib\codeop.py", line 133, in __call__ codeob = compile(source, filename, symbol, self.flags, 1) File "<interactive input>", line 1 list({a:[ ['one':1] , ['two':1], ['three':2] ]} , {b:[ ['one':1] , ['four':1], ['five':2] ]}) ^ SyntaxError: invalid syntax
Офлайн
SlowЯ обьясню главную проблему так будет легче понять:
Я честно прочитал написанное трижды. Трижды я честно пытался понять. Трижды у меня не вышло. Попробуйте переформулировать, что ли…
{'term': [document_id, term_frequency], [document_id, term_frequency]......}
Отредактировано Lena13_08 (Дек. 4, 2017 20:52:04)
Офлайн
имхо списки тут лишние
d = {} d['term1'] = {'id1':1,'id2':2,'id3':3} d['term2'] = {'id1':2,'id2':4,'id3':5} d['term3'] = {'id2':2,'id3':4,'id4':5} s = set(d['term1'].keys()) & set(d['term2'].keys()) & set(d['term3'].keys()) print(s) >>> {'id3', 'id2'}
Отредактировано vic57 (Дек. 4, 2017 21:52:07)
Офлайн
vic57Спасибо , но это не подойдёт, индекс построен в том виде как я написала, я не могу его изменить
имхо списки тут лишние
Офлайн
так как вы написали работать не будет
>>> d = {'term': [document_id, term_frequency], [document_id, term_frequency]} SyntaxError: invalid syntax >>>
>>> d={} >>> d['t1'] = [['id1',1],['id2',2],['id3',3]] >>> d['t2'] = [['id1',1],['id2',1],['id3',1]] >>> d['t3'] = [['id1',1],['id2',1],['id4',1]] >>> l1 = [i[0] for i in d['t1']] >>> l2 = [i[0] for i in d['t2']] >>> l3 = [i[0] for i in d['t3']] >>> set(l1) & set(l2) & set(l3) {'id1', 'id2'}
Отредактировано vic57 (Дек. 4, 2017 22:31:10)
Офлайн
Я думаю что можно, вот смотри у меня есть идея:
Например я запрашиваю ‘ term1, term2’
Сначала я выбираю все словари из индекса с term 1 и term2. Потом я беру все doc_id у словаря term1 и ищу их у словаря для term2. Может так получиться?
for i in словари: for k,v in словарь.items(): for j in v: if j[0] in i: print j
Офлайн
Lena13_08Так вот как это оказывается правильно называется - “лист словарей”
У меня есть лист словарей(каждый раз номер этих словерей меняеться так как я нахожу их по ключу)
в такой форме:
list({a:[ ['one':1] , ['two':1], ['three':2] ]} , {b:[ ['one':1] , ['four':1], ['five':2] ]})
Отредактировано papuas (Дек. 5, 2017 05:02:09)
Офлайн
papuasПапуас это никак не называется. Вам два раза написали что это синтаксически недопустимая конструкция.
Так вот как это оказывается правильно называется - “лист словарей”
Lena13_08Учитывая что конструкция невозможная в питоне а ТС не желает ее менять то остается только сидеть и ждать когда язык изменят так чтобы он подходил для ее целей.
Спасибо , но это не подойдёт, индекс построен в том виде как я написала, я не могу его изменить
Офлайн