生成器表达式与for循环的丑陋组合

Ste*_*sop 8 python for-loop generator

我的Python 2.6代码中出现以下内容:

for src, dst in ([s,d] for s in universe for d in universe if s != d):
Run Code Online (Sandbox Code Playgroud)

我可以做得更好吗?我特别不喜欢的是,我实际上指定了两次相同的对,一次用于for循环,另一次用于生成器表达式.我不确定我是否愿意:

for src, dst in itertools.product(universe, universe):
    if src != dst:
Run Code Online (Sandbox Code Playgroud)

有没有办法简洁地表达这个循环?

universe恰好是一个列表,如果它有任何区别.迭代次序无关紧要.

sth*_*sth 5

您可以使用简单的嵌套for循环:

for src in universe:
   for dst in universe:
      if src == dst:
         continue
      ...
Run Code Online (Sandbox Code Playgroud)

我想说这是这种情况下最容易阅读的语法.