python - python 中的列表组合问题

标签 python python-3.x list numpy

我有一些 Python 列表,其中包含我想要连接的信息。这些列表类似于:

vars1 = ["x1", "x2"]
vars2 = ["y1", "y2"]
main_list = ["a","b","c","d"]

我想要的是获得所有可能的组合(即使我不知道正确的操作名称)以涵盖我在下面列出的所有情况:

[
    ("x1,a,x2", "y1,a,y2"), ("x1,a,x2", "y1,b,y2"),
    ("x1,a,x2", "y1,c,y2"), ("x1,a,x2", "y1,d,y2"),
    ("x1,b,x2", "y1,a,y2"), ("x1,b,x2", "y1,b,y2"), 
    ("x1,b,x2", "y1,c,y2"), ("x1,b,x2", "y1,d,y2")
    ("x1,c,x2", "y1,a,y2"), ("x1,c,x2", "y1,b,y2"),
    ("x1,c,x2", "y1,c,y2"), ("x1,c,x2", "y1,d,y2"),
    ("x1,d,x2", "y1,a,y2"), ("x1,d,x2", "y1,b,y2"),
    ("x1,d,x2", "y1,c,y2"), ("x1,d,x2", "y1,d,y2"),
]

我调查了 itertools.product 函数,但无法获得所需的结果。

如果您能帮助我,我将不胜感激。

最佳答案

你的问题不是很清楚,但这看起来像你想要的(如果我错了,请纠正我):

vars1 = ["x1", "x2"]
vars2 = ["y1", "y2"]
main_list = ["a","b","c","d"]
result = []

for a1, a2 in itertools.product(main_list, main_list):
    result.append((','.join((vars1[0], a1, vars1[1])), ','.join((vars2[0], a2, vars2[1]))))

换句话说,值的形式为 ('x1,<a1>,x2', 'y1,<a2>,y2')对于所有人(<a1>, <a2>)在集合的笛卡尔积 {'a', 'b', 'c', 'd'}与它本身,这确实是itertools.product是为了。

结果:

[('x1,a,x2', 'y1,a,y2'),
 ('x1,a,x2', 'y1,b,y2'),
 ('x1,a,x2', 'y1,c,y2'),
 ('x1,a,x2', 'y1,d,y2'),
 ('x1,b,x2', 'y1,a,y2'),
 ('x1,b,x2', 'y1,b,y2'),
 ('x1,b,x2', 'y1,c,y2'),
 ('x1,b,x2', 'y1,d,y2'),
 ('x1,c,x2', 'y1,a,y2'),
 ('x1,c,x2', 'y1,b,y2'),
 ('x1,c,x2', 'y1,c,y2'),
 ('x1,c,x2', 'y1,d,y2'),
 ('x1,d,x2', 'y1,a,y2'),
 ('x1,d,x2', 'y1,b,y2'),
 ('x1,d,x2', 'y1,c,y2'),
 ('x1,d,x2', 'y1,d,y2')]

关于python - python 中的列表组合问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53329521/

相关文章:

python - UDP 和 TCP 始终为一个客户端使用相同的 IP?

python - 为什么生成随机整数的 "normal"方法这么慢?

python - 使用 pip (CPU 版本)在 Windows 10 中安装 TensorFlow 时出现错误

python - 如何将鼠标按钮选择存储在列表中?

Python:找到最小的整数

python - Python REST(Web 服务)框架的推荐?

python - 在 Python 中切掉列表中每个(列表)元素中的第一个元素

python-3.x - 使用 aiohttp 阻止请求

list - 如何从 CLIPS 的列表中找到最大元素?

python - 根据 Python 中列表中的值返回一个字符串值