Найти - Пользователи
Полная версия: Натолкните на мысль!
Начало » Python для новичков » Натолкните на мысль!
1
avdoshkin
Есть скрипт в результате:
config ports 2:11 description stroit-12
config ports 2:12 description kv24-3
config ports 2:12 description kv24-8
config ports 2:13 description 9yanv-13
config ports 2:13 description 9yanv-15
config ports 2:13 description 9yanv-17

необходимо:
config ports 2:13 description 9yanv-13
config ports 2:13 description 9yanv-15
config ports 2:13 description 9yanv-17

если порт одинаковый то:
config ports 2:13 description 9yanv-13,9yanv-15,9yanv-17
PooH
Собирать в словарь где ключом будет порт, а значением список дескрипшинов. Потом пройти по словарю и вывести.
avdoshkin
PooH
Собирать в словарь где ключом будет порт, а значением список дескрипшинов. Потом пройти по словарю и вывести.
Собрал словарь из :
key = ['1:15', '1:12', '1:12', '1:13', '1:15', '1:1', '1:3', '1:16', '1:2', '2:5', '1:9', '2:8', '2:6', '2:2', '2:6', '1:19', '1:8', '1:11', '1:6', '1:14', '2:4', '2:13', '4:1', '4:2', '4:2', '2:11', '1:7', '2:1', '1:21', '1:20', '1:10', '1:7', '1:17', '1:4', '1:5', '1:18', '2:3', '1:23', '2:12', '2:12', '1:21', '2:13', '2:13', '1:22', '2:10', '2:7', '2:9', '2:2', '2:8']

val = ['mon3-35', 'kv7b-2', 'kv7b-1', 'stroit-19', 'mon3-36', 'mon4-1', 'mon4-3', 'mon3-37', 'mon4-2', 'kalinina-20', 'mon4-10', '40let-5', 'kalinina-24', 'lazo-8', 'kalinina-26', 'kv7b-8', 'kv25-3', 'mon5-8', 'mon4-6', 'kv7b-5', 'kalinina-14', '9yanv-17', 'mon5-22', 'mon5-39', 'mon5-40', 'stroit-12', 'kv7b-4', 'dekab-48', 'lazo-11', 'kv7b-9', 'kv7b-11', 'kv7b-3', 'kv7b-7', 'mon4-4', 'mon4-5', 'kv7b-10', 'kalinina-16', 'kv-politeh-1', 'kv24-8', 'kv24-3', 'lebedenko-8', '9yanv-13', '9yanv-15', 'kv28-4', 'mon5-17', 'kalinina-2', 'gagarina-2', 'lazo-4', 'des-40let-7']

res = dict(zip(key,val))

print res

{'4:1': 'mon5-22', '2:10': 'mon5-17', '1:23': 'kv-politeh-1', '1:22': 'kv28-4', '1:21': 'lebedenko-8', '1:20': 'kv7b-9', '2:7': 'kalinina-2', '2:6': 'kalinina-26', '2:5': 'kalinina-20', '2:4': 'kalinina-14', '2:3': 'kalinina-16', '2:2': 'lazo-4', '2:1': 'dekab-48', '2:9': 'gagarina-2', '2:8': 'des-40let-7', '1:8': 'kv25-3', '1:9': 'mon4-10', '4:2': 'mon5-40', '1:1': 'mon4-1', '1:2': 'mon4-2', '1:3': 'mon4-3', '1:4': 'mon4-4', '1:5': 'mon4-5', '1:6': 'mon4-6', '1:7': 'kv7b-3', '1:18': 'kv7b-10', '1:19': 'kv7b-8', '1:12': 'kv7b-1', '1:13': 'stroit-19', '2:11': 'stroit-12', '1:11': 'mon5-8', '1:16': 'mon3-37', '1:17': 'kv7b-7', '1:14': 'kv7b-5', '1:15': 'mon3-36', '2:13': '9yanv-15', '2:12': 'kv24-3', '1:10': 'kv7b-11'}
В результате получил словарь без дублирующих key, куда делись идентичные keys? Поясните пожалуйста.
o7412369815963
# coding: utf8

txt = '''config ports 2:11 description stroit-12
config ports 2:12 description kv24-3
config ports 2:12 description kv24-8
config ports 2:13 description 9yanv-13
config ports 2:13 description 9yanv-15
config ports 2:13 description 9yanv-17'''

import re

d = {}
g = re.findall(r's (\d+:\d+) \w+\s(.*)$', txt, re.MULTILINE)
for k,v in g:
if k not in d: d[k] = []
d[k].append(v)

print d
тут можно сплитом так же просто разобрать.
результат:
{
'2:13': ['9yanv-13', '9yanv-15', '9yanv-17'],
'2:12': ['kv24-3', 'kv24-8'],
'2:11': ['stroit-12']
}
ЗЫ: тестирую новый eclipse :)
apologize828
avdoshkin
В результате получил словарь без дублирующих key, куда делись идентичные keys? Поясните пожалуйста.
Ключи словарей являются уникальными!Вот и получается, если ты добавляешь новую пару “ключ-значение”, с ключом который уже имеется в словаре, то происходит замена значения у этого ключа на новое.
o7412369815963
>>PooH
>>Собирать в словарь где ключом будет порт, а значением список дескрипшинов. Потом пройти по словарю и вывести.
avdoshkin
Нужен совет!
Есть исходные данные:

11 1:1-1:24,2:1-2:11,2:13-2:15,2:17-2:18,2:20-2:24,3:10,3:21,3:23-3:24

их нужно привести в вид:
11 1:1-1:24
11 2:1-2:11,2:13-2:15,2:17-2:18,2:20-2:24
11 3:10,3:21,3:23-3:24
avdoshkin
Вопрос закрыт, спасибо o7412369815963 за его http://www.py-my.ru
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB