Python 元组上的*运算符是如何工作的

Python中元组上的*运算符是如何工作的?

在Python中,元组类似于列表。两者之间的区别是一旦分配了元组,其元素就不能更改,而列表项可以,即元组是不可变的,而列表是可变的。

重复运算符(*):

序列数据类型(可变和不可变)支持重复运算符。重复运算符创建该对象的多个副本并将它们连接在一起。当与整数一起使用时,*执行乘法,但是当与列表,元组或字符串一起使用时,它执行重复。

在本文中,我们将向您展示*运算符如何在Python中处理元组。以下是不同的示例,以了解*如何在Python元组中工作−

  • 元组元素上的重复运算符(*)

  • 嵌套元组项上的重复运算符(*)

  • 使用*运算符拆包函数。

  • 当重复值为0时

更多Python相关文章,请阅读:Python 教程

方法1:元组元素上的重复运算符(*)

将元组乘以任何整数时,将得到另一个带有来自输入元组的所有元素重复x次的元组。例如,inputTuple * 4表示将元组inputTuple的项目重复4次。

示例

以下程序使用*运算符将元组重复给定次数−

#输入的元组
inputTuple=(3, 4, 2)

#重复输入元组4次并打印结果元组
print(inputTuple*4)

输出

在执行上述程序时,将生成以下输出−

(3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2)

这里,我们取了一个随机值的元组,并使用*运算符将其乘以4,以便输出由给定的元组重复四次组成。

方法2:嵌套元组项上的重复运算符(*)

示例

#输入的嵌套元组
nestedTuple=((4,9,8),(3,6))

#重复输入的嵌套元组3次并打印结果元组
print(nestedTuple*3)

输出

在执行上述程序时,将生成以下输出−

((4, 9, 8), (3, 6), (4, 9, 8), (3, 6), (4, 9, 8), (3, 6))

在此示例中,我们使用了一个随机值的嵌套元组。然后我们将元组乘以三次,输出元组包含给定的嵌套元组乘以三次。我们可以看到它不是将元组的每个元素都乘以x,而是将整个元组作为一个项同时乘以x。

方法3:当给出重复值为0时

如果提供的值小于或等于0,则将返回相同类型的空序列。

示例1

以下程序在将输入元组乘以0时返回空元组−

#输入的元组
inputTuple =(4,9,8)

#重复值为0时返回一个空元组
print(inputTuple*0)

输出

执行上述程序后,将生成以下输出 −

()

我们在这里使用0作为重复值,因此我们得到了一个空元祖(),因为任何与0相乘的东西都等于0(空)

示例2

以下程序在输入与任何小于0的数字相乘时返回一个空的元组 –

#输入元组
inputTuple = (4, 9, 8)

#当重复值小于0时返回一个空元组
print(inputTuple*-32)

输出

执行上述程序后,将生成以下输出 −

()

因为*操作符仅接受正值,所以在将-32作为重复值传递时,我们得到了一个空元组。如果有任何负值,则无法将它们相乘,因此返回一个空元组。

方法4:使用位置参数来解包函数。

星号()运算符将序列/集合解包为位置参数。 因此,如果您有一个元组并且想要将该元组的元素作为每个位置的参数传递,则可以使用运算符,而不是单独索引每个元素。

算法(步骤)

按照以下Algorithm/steps执行所需任务 –

  • 创建一个变量来存储输入元组,并给它一些随机值。

  • 要打印不带括号[]的元组元素,首先通过将str和元组作为参数传递给map()函数来将元组转换为字符串。它将元组的每个元素转换为字符串类型并返回项目的结果元组。 join()函数(join()用于将以一个字符串分隔符分隔的序列的元素连接起来)用于将结果元组转换为字符串。

  • 与以前的方法不同,我们可以使用星号运算符(*)打印由空格分隔的元组。

例子

以下程序打印带空格的元组元素 –

#输入元组
inputTuple = ('TutorialsPoint', 'Python', 'Codes', False, 3.4, 5, 'hello', 'everyone')

#使用map()将元组元素转换为字符串
#使用join()函数将元组转换为字符串
#不使用星号运算符
print('Without Using * Operator :')
print(' '.'.'.join(map(str,inputTuple)))

#使用星号运算符
print('Using * operator : ')
print(*inputTuple)

输出

执行上述程序后,将生成以下输出 −

Without Using * Operator :
TutorialsPoint Python Codes False 3.4 5 hello everyone
Using * operator :
TutorialsPoint Python Codes False 3.4 5 hello everyone

结论

本文讨论了使用 * 重复运算符的元组的全部情况。我们还讨论了在不同场景下它的行为。我们学习了如何使用 * 运算符将元组元素以空格分隔打印。这可以在各种场合中非常有用,例如面试中想要返回以空格分隔的元组,或者编程比赛中想要节省时间而不是编写多个函数。我们还学习了 * 运算符在嵌套元组中的行为,以及它如何将嵌套的元组乘以多次,而不是将嵌套元组中的每个元素乘以多次。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程