Python中的乘法元组
我需要创建一个嵌套元组,其中一些值是相同的,所以我尝试将它们相乘Python中的乘法元组,python,tuples,multiplication,Python,Tuples,Multiplication,我需要创建一个嵌套元组,其中一些值是相同的,所以我尝试将它们相乘 t = ((('a', 'b'),) * 3) print t 印刷品 (('a', 'b'), ('a', 'b'), ('a', 'b')) 有没有语法上更好的方法 谢谢。一种方法是不要使用太多的括号: t = (('a', 'b'), ) * 3 同样有效 您可以尝试以下方法: t = (('a', 'b'),)*3 也就是说,只需去掉括号和它的done表达式的表示可能会稍微简单一些,但它几乎是规范的。我会用 t =
t = ((('a', 'b'),) * 3)
print t
印刷品
(('a', 'b'), ('a', 'b'), ('a', 'b'))
有没有语法上更好的方法
谢谢。一种方法是不要使用太多的括号:
t = (('a', 'b'), ) * 3
同样有效 您可以尝试以下方法:
t = (('a', 'b'),)*3
也就是说,只需去掉括号和它的done表达式的表示可能会稍微简单一些,但它几乎是规范的。我会用
t = 3 * (('a', 'b'), )
它删除一组括号,并在显示元组之前直观地警告乘法。您可能会想象,可以删除另一组括号以给出
t = 3 * ('a', 'b'),
但遗憾的是,这个表达式的结果并不是必需的,而是给出了
(('a', 'b', 'a', 'b', 'a', 'b'),)
i、 e.其唯一元素是生成的六个元素的元组。另一种选择:
from itertools import repeat
tuple(repeat(('a', 'b'), 3))
为什么是外圆括号?他们什么也没做;它们只是对括号进行分组,就像在
(1+2)*3
中一样,但在这样的上下文中,它们无助于消除任何分组的歧义。我的想法是,它们是创建外部元组所必需的,而不是用于任何分组。