Если у вас есть такой список:
shops=['A','B','C','D']
И хотел бы создать следующие новые списки (я пересекаю каждый элемент друг с другом и создаю строку, где первая часть имеет буквенно-буквенный формат перед вторым):
['A-B', 'A-C', 'A-D']
['A-B', 'B-C', 'B-D']
['A-C', 'B-C', 'C-D']
['A-D', 'B-D', 'C-D']
У меня есть что-то вроде этого:
for a in shops:
cons = []
for b in shops:
if a!=b:
con = [a,b]
con = sorted(con, key=lambda x: float(x))
cons.append(con[0]+'-'+con[1])
print(cons)
Однако это довольно медленно для больших списков (например, 1000, где у меня есть 1000 * 999 * 0,5 выходов). Я искал более эффективный способ сделать это?
Я мог бы использовать предложение if-else для сортировки, например.
for a in shops:
cons = []
for b in shops:
if a<b:
cons.append(a+"-"+b)
elif a>b:
cons.append(b+"-"+a)
print(cons)
Который, я еще не приурочен - однако я думал, что основным замедлением является двойной цикл for