Форум сайта python.su
0
да нет, тут я очень сильно ошибся , код вообще не правильный, нужно что бы из списка “b” мы брали значение первое и искали это значение как сумму во втором , тоесть 2=2, потом берем 6 и исключаем уже используемые значения из “а” в итоге получим 6=1+2+2+1, тут что бы получить 6 мы сложили 4 числа из списка “а” и в итоге мы должны получить:
с=[1,4,1]
a=[2, 1, 2, 2, 1, 4] b=[2, 6, 4] c=list() j=0 for z1 in b: i=0 for z2 in a: if b[j]==(sum(a[j:i])): c.append(len(a[j:i])) break i=i+1 j=j+1 print(c)
Отредактировано miko2009 (Дек. 19, 2015 18:39:43)
Офлайн
0
что бы понять к чему эти цифры
a=[2, 1, 2, 2, 1, 4]-#это количество экземпляров каждого типа b=[2, 6, 4]-#это количество экземпляров типов в каждом из трех классов с=[1,4,1]-#это три класса и каждая цифра это количество типов класса
Отредактировано miko2009 (Дек. 19, 2015 18:44:21)
Офлайн
0
все решение найдено 
a=[2, 1, 2, 2, 1, 4,3,4] b=[2, 6, 4,7] c=list() j=0 for z1 in b: i=0 for z2 in a: if b[j]==(sum(a[sum (c[:]):i+1])): c.append(len(a[sum (c[:]):i+1])) break i=i+1 j=j+1 print(c)
Офлайн
568
это плохое решение
Офлайн
0
давайте лучше 
Офлайн
568
Ничего я вам не дам, голова есть на плечах - думайте.
Я вам подскажу. Если программа дважды делает одно и то же - это плохая программа.
Офлайн
4
это плохое решение
a=[2, 1, 2, 2, 1, 4,3,4] b=[2, 6, 4,7] count = 0 sum_a = 0 c = [] for x in b: while x != sum_a: sum_a += a.pop(0) count += 1 else: c.append(count) count = 0 sum_a = 0 print(c)
Офлайн
857
miko2009Ну, вот его результат
я сделал как указал shaptmos, выполнил сет двух списков, отсортировал как мне нужно , и далее извлек первый arg в один список , а второй arg в другой. Все (как я и думал) очень просто по крайней мере получил нужный результат …..
>>> y ['a', 'a', 'b', 'd', 'a', 'd', 'b', 'd'] >>> z ['1', '1', '1', '1', '2', '2', '3', '3'] >>>
miko2009a=['a','a','b','d','b','d','d','a'] b=['1','1','1','1','3','3','2','2']
Отредактировано py.user.next (Дек. 20, 2015 03:13:38)
Офлайн
0
miko2009это влияет на время отклика программы и не более. Но я уже сказал что отсортировал set как мне нужно, не просто
ну желательно что бы не по порядку 123456 а именно как они возникают в списке
.sort()
Офлайн
0
еще одна задачка на сортировку :
a=[7.45, 9.84, 3.32, 4.79, 6.45, 7.33, 9.61, 9.61, 4.31, 4.92, 8.65, 10.03] b=[2, 1, 2, 2, 1, 4]
a=[7.45, 9.84, 3.32, 4.79, 6.45, 7.33, 9.61, 9.61, 4.31, 4.92, 8.65, 10.03] b=[2, 1, 2, 2, 1, 4] h=list() n=list() k=list() g=list() i=0 for z1 in b: p=z1 e=sum(h[:]) n.append(e) h.append(p) d=sum(h[:]) k.append(d) r=sum(a[e:d]) g.append(r) i=i+1 if i>len(b)-1: break print(g)
[17.29, 3.32, 11.24, 16.939999999999998, 9.61, 27.910000000000004]
Офлайн