这个问题在这里已有答案:
我'm trying to create a list of id',其中数字由三个不同的列表组成:数字的第一部分应该来自列表 pers
:
pers = list(range(1,12))
第二部分应该是人员ID和数字1或2的组合(不一定是列表,因为它只是两个数字),如下所示:
ids = [11, 12, 21, 22, 31, 32, 41, 42, 51, 52, 61, 62, 71, 72, 81, 82, 91,
92, 101, 102, 111, 112]
第三部分应该是以上列表和 reps
列表中的值的组合:
reps = list(range(1,13))
像这样:
ids = [111, 112, 113, 114, 115, 116, 117, 118, 119, 1110, 1111, 1112,
121, 122, 123, 124, 125, 126, 127, 128, 129, 1210, 1211, 1212 ...]
等等,一直到11212(人11,条件2,重复12) . 列表中共有大约2250个项目 .
我已经尝试了各种itertools函数,或嵌套for循环,列表和this post中的提示,但似乎没有产生我需要的东西 .
4 回答
你可以做一个三循环列表理解:
或者,如果您需要它们作为整数:
what about without loop and without any external module ?
而不是三个循环,你可以尝试:
输出:
您可以按照建议使用itertools.product: