У меня есть словарь, который содержит список расширенных имен классов в качестве ключей с каждым ключом, указывающим на список, содержащий количество раз, когда класс появляется в разных банках и какие банки появляются вХеш или dict классов в баночках, которые нуждаются в складывании
Например:.
classToJars = {
'com.sun.xml.ws.policy.PolicyMapKey.class' : [ 1, 'policy-2.3.1.jar'],
'com.sun.xml.ws.policy.PolicyMerger.class' : [ 1, 'policy-2.3.1.jar'],
'com.sun.xml.ws.policy.PolicyAssertion.class' : [ 1, 'policy-2.3.1.jar' ],
'com.sun.xml.bind.AccessorFactory.class' : [1, 'jaxb-impl-2.2.6.jar'],
'com.sun.xml.bind.AccessorFactoryImpl.class' : [1, 'jaxb-impl-2.2.6.jar'],
'com.sun.xml.bind.AnyTypeAdapter.class' : [1, 'jaxb-impl-2.2.6.jar' ],
'org.apache.mina.integration.jmx.IoSessionManager.class' : [1, 'mina-integration-jmx-1.1.7.jar'],
'org.apache.mina.integration.jmx.IoServiceManager.class' : [1, 'mina-integration-jmx-1.1.7.jar'],
'org.apache.log4j.Appender.class' : [2, 'log4j-1.2.14.jar', 'log4j-1.2.15.jar'],
'org.apache.log4j.AppenderSkeleton.class' : [2, 'log4j-1.2.14.jar', 'log4j-1.2.15.jar'],
'com.sun.activation.registries.LineTokenizer.class' : [1, 'activation-1.1.jar'],
'com.sun.activation.registries.LogSupport.class' : [1, 'activation-1.1.jar'],
'com.sun.istack.Builder.class' : [2, 'jaxb-impl-2.2.6.jar istack-commons-runtime-2.4.jar'],
'com.sun.istack.ByteArrayDataSource.class' : [2, 'jaxb-impl-2.2.6.jar istack-commons-runtime-2.4.jar'],
'com.reuters.rfa.ansipage.Page.class' : [1, 'rfa-7.2.0.E2.jar'],
'com.reuters.rfa.ansipage.PageUpdate.class' : [1, 'rfa-7.2.0.E2.jar'],
'org.apache.http.impl.io.AbstractMessageWriter.class' : [1, 'rfa-7.2.0.E2.jar'],
'org.apache.http.impl.io.ChunkedOutputStream.class' : [1, 'rfa-7.2.0.E2.jar']
}
большой ДИКТ с тысячами ключей и значений петельные над большим набором банок. Идея состоит в том, чтобы иметь возможность сбрасывать dict, если значения одинаковы, а затем складывать их до самой большой общей подстроки.
Например: при запуске функции складывания, указанное хэш должна быть уменьшена до 4-х строк следующим образом:
'com.sun.xml.ws.policy' \t \t \t : [ 1, 'policy-2.3.1.jar'],
'com.sun.xml.bind' \t \t \t : [1, 'jaxb-impl-2.2.6.jar'],
'org.apache.mina.integration.jmx' \t : [1, 'mina-integration-jmx-1.1.7.jar'],
'org.apache.log4j' \t \t \t \t \t : [2, 'log4j-1.2.14.jar', 'log4j-1.2.15.jar'],
'com.sun.activation.registries' \t : [1, 'activation-1.1.jar'],
'com.sun.istack' \t \t \t \t \t : [2, 'jaxb-impl-2.2.6.jar istack-commons-runtime-2.4.jar'],
'com.reuters.rfa.ansipage' \t \t \t : [1, 'rfa-7.2.0.E2.jar'],
'org.apache.http.impl.io' \t \t \t : [1, 'rfa-7.2.0.E2.jar'],
и так далее.
так как между com.reuters.rfa и org.apache.http нет ничего общего, он вернется с пустой клавишей, если вы зайдете на самую большую общую подстроку.
В таком случае необходимо просто вставить com.reuters.rfa и org.apache.http отдельно.
Любые идеи о том, как этого достичь?
Действительно ли вы используете Python или это неправильный тег? – ThisSuitIsBlackNot
@ThisSuitisBlackNot Честно говоря, я в порядке с perl или python, поскольку я просто ищу логику для решения этой проблемы. – soothsayer
Пожалуйста, отформатируйте данные в действительном синтаксисе python. – ErikR