Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有特定模式的元组列表_Python_List_Tuples - Fatal编程技术网

Python 具有特定模式的元组列表

Python 具有特定模式的元组列表,python,list,tuples,Python,List,Tuples,有没有办法创建具有特定模式的元组列表? 我希望有下面的列表,而不必手动编写它们,我认为这可能是“简单的”,因为在元组列表中有一种模式,但不确定如何做到这一点 a = [ [(30, 5, 10), (30, 5, 20), (30, 5, 30), (30, 10, 10), (30, 10, 20), (30, 10, 30), (30, 20, 10), (30, 20, 20), (30, 20, 30)], [(35, 5, 10), (35, 5, 20), (35, 5, 30),

有没有办法创建具有特定模式的元组列表? 我希望有下面的列表,而不必手动编写它们,我认为这可能是“简单的”,因为在元组列表中有一种模式,但不确定如何做到这一点

a = [
[(30, 5, 10),
(30, 5, 20),
(30, 5, 30),
(30, 10, 10),
(30, 10, 20),
(30, 10, 30),
(30, 20, 10),
(30, 20, 20),
(30, 20, 30)],

[(35, 5, 10),
(35, 5, 20),
(35, 5, 30),
(35, 10, 10),
(35, 10, 20),
(35, 10, 30),
(35, 20, 10),
(35, 20, 20),
(35, 20, 30)],

[(40, 5, 10),
(40, 5, 20),
(40, 5, 30),
(40, 10, 10),
(40, 10, 20),
(40, 10, 30),
(40, 20, 10),
(40, 20, 20),
(40, 20, 30)]
    ]
a
输出:

[[(30, 5, 10),
  (30, 5, 20),
  (30, 5, 30),
  (30, 10, 10),
  (30, 10, 20),
  (30, 10, 30),
  (30, 20, 10),
  (30, 20, 20),
  (30, 20, 30)],
 [(35, 5, 10),
  (35, 5, 20),
  (35, 5, 30),
  (35, 10, 10),
  (35, 10, 20),
  (35, 10, 30),
  (35, 20, 10),
  (35, 20, 20),
  (35, 20, 30)],
 [(40, 5, 10),
  (40, 5, 20),
  (40, 5, 30),
  (40, 10, 10),
  (40, 10, 20),
  (40, 10, 30),
  (40, 20, 10),
  (40, 20, 20),
  (40, 20, 30)]]
是,使用,带有步骤

范围(启动、停止、步进)

一个简单的方法是:

array = []

for x in range(30, 45, 5):
    y_tuple_multipler = 1
    sub_array = []
    for y in range(1, 4):
        y_tuple = 5 * y_tuple_multipler
        for z in range(10, 40, 10):
            sub_array.append((x, y_tuple, z))
        y_tuple_multipler *= 2
    array.append(sub_array)
print(array)

您可能会得到更多的pythonic,但是简单性总是好的(并且更容易调试多个循环)

您可以尝试以下列表:

l1 =[30,35,40]
l2 =[5,10,20]
l3= [10,20,30] 

l =  [[(i1,i2,i3) for i2 in l2 for i3 in l3 ]for i1 in l1]
如果要添加数字,只需将其添加到内部元组(对于exmaple,10):


你能告诉我们你试过的代码吗?我们可以帮助您修复它,并建议您更好的方法,但它不会导致OP的确切输出…@adirabargil如何?我做了一个打印,它是OP想要的精确输出第二个范围不是迭代5,10,20它迭代5,10,15,20…事实上,它迭代
5,10,15,20
,而不是
5,10,20
,这是我遇到的问题。@DanielRodríguez这给了你想要的吗?你将不得不根据你的需要和所需的数学来调整你的循环,以获得你想要的迭代。这似乎完全符合预期,有没有一种方法可以添加另一个包含列表理解的常量(在乞讨或结束时)?例如,在
[0]
处向所有元组添加一个10,你能显示它是什么样子吗?当然,给定的解决方案正确地显示:
(30,5,10),(30,5,20),(30,5,30)…
有没有办法向所有元组添加一个变量?说
(x,30,5,10),(x,30,5,20),(x,30,5,30).
在前面的评论中,我说10只是为了说点什么,但它可以是相应更新的任何数字。。。。
l =  [[(10,i1,i2,i3) for i2 in l2 for i3 in l3 ]for i1 in l1]