У меня есть код на Python, который удаляет строки, если они похожи при обратном. Например, если у меня есть документ, который содержит:скрипт python для удаления обратных повторяющихся строк
1,2 3,4
5,6 7,8
2,1 4,3
5,6 8,7
После выполнения сценария, выход
5,6 7,8
2,1 4,3
5,6 8,7
Рассмотрим первый столбец 1,2 и второй столбец 7,8 для линии, то , если другая строка содержит обратные значения для каждого столбца как 2,1 и 8,7, это считается обратным.
Однако я заметил, что сценарий не поддерживает порядок строк. Порядок строк важен для меня. Кроме того, мне нужно удалить вторую аналогичную обратную линию, а не первую. Код
import sys
with open(sys.argv[1]) as inf:
keys = set()
for line in inf:
ports, ips = line.split()
port1, port2 = ports.split(",")
ip1, ip2 = ips.split(",")
if ip1 < ip2:
keys.add((ip1, port1, ip2, port2))
else:
keys.add((ip2, port2, ip1, port1))
with open('results', 'w') as outf:
for result in keys:
outf.write("{1},{3}\t{0},{2}\n".format(*result))
Любые идеи? Любое предложение, если мы сможем сделать это на скриптах bash?
Благодаря
ли '1,2 7,8' и' 7, 8 1,2' эквивалент? – jterrace
Это не похоже на какое-либо определение «обратного», которое я когда-либо видел. Какую проблему вы пытаетесь решить? Зачем вам этот сценарий? – user2357112
no.consider Первый столбец равен 1,2, а второй столбец - 7,8 для строки a, тогда если другая строка содержит обратные значения для каждого столбца как 2,1 и 8,7, это считается обратным. – user2566898