0
0 комментариев

Здравствуйте!

a = [(['192.168.0.1'], ['8080']), (['192.168.0.2'], ['4662']), (['192.168.0.3'], ['8080', '4662']), (['192.168.0.4'], ['8080', '4662']), (['192.168.0.5'], ['8080', '4662']), (['192.168.0.6'], ['8080']), (['192.168.0.8'], ['80', '443'])]

Почему вот так работает: for key,val in a: d[key[0]] = val

А вот так не работает: [(d[key[0]] = val) for key,val in a]

  File "<stdin>", line 1
    [(d[key[0]] = val) for key,val in a]
                ^
SyntaxError: invalid syntax

Может как-то это можно записать короче/красивше?

И почему [a.remove(item) for item in a if '8080' in item[1]] удаляет не все значения за раз? То есть надо несколько раз выполнить выражение, чтоб удалить все совпадения.

И ещё самый важный вопрос: Подскажите пожалуйста самый правильный метод работы с данными в python типа key:value (как в примере выше, но очень много), чтоб потом можно было производить поиск как по key, так и по value и найденную пару удалять? В данный момент у меня лист туплов с листами (как в примере выше), но оно мне по виду не нравится :) и я решил перевести это всё в словарь, но как пишут в интернетах — словари для этого не предназначены.

Изменен статус публикации
Добавить комментарий