for x in newlist:
key, val = x.split('-',1)
h[key].append(val)
newlist = ['650776-2200520-000', '654446-0444530-000', '788126-8895872-000' ,'788126-8895872-001']
storage = {}
for data in newlist:
key, val = data.split('-',1)
storage[key] = storage.get(key, []) + [val]
print(f"{'столбец 1':<15} столбец 2")
for key, val in storage.items():
print(f"{key:<15} {','.join(val)}")
In [23]:
столбец 1 столбец 2
650776 2200520-000
654446 0444530-000
788126 8895872-000,8895872-001
Входные данные:122145-252521-000, 245684-52354841-454
newlist = ['650776-2200520-000', '654446-0444530-000', '788126-8895872-000']
Как мне получить :
122145 252521-000
245684 52354841-454
h[key].append(val)
если значения отличаются друг от друга всего одним символом( к примеру, последним)
А мне нужно, записать это значение в имеющуюся уже строку.
Шаманство, как в group попадает этот готовый кортеж?
Потому что в записи
[iter(sequence), iter(sequence), iter(sequence)]
или
zip(iter(sequence), iter(sequence), iter(sequence))
3 разных независимых итератора, а не ссылка на один и тот же
In [5]: sequence = [1,2,3]
In [6]: [iter(sequence)] * 3
Out[6]:
[<list_iterator at 0x2b63abce880>,
<list_iterator at 0x2b63abce880>,
<list_iterator at 0x2b63abce880>]
#Для первого условия можно короче:
print(sum(0 not in x for x in mass))
#Для второго условия читается тяжело. Я бы сделал в пару строк с использованием Counter