Python 中 * 运算符在列表上的作用是什么?
在 Python 中,列表是一个有序序列,可以容纳多种对象类型,例如整数、字符或浮点数。在其他编程语言中,列表相当于数组。
重复运算符 (*)
序列数据类型(可变和不可变)都支持重复运算符 *。* 重复运算符创建该对象的多个副本并将它们连接在一起。当与整数一起使用时,* 执行乘法运算;但当与 列表、元组 或 字符串 一起使用时,它执行重复操作。
在本文中,我们将向您展示 * 运算符在 Python 列表上的作用。以下是了解 * 运算符如何在 Python 列表上运行的不同示例:
列表项上的重复运算符 (*)
* 运算符作为引用的工作方式
使用 * 运算符解包函数。
重复值为 0 时
列表项上的重复运算符 (*)
Python 列表也包含 * 运算符,允许您创建一个包含重复元素的新列表,重复次数由您指定。
下面的程序使用 * 运算符将列表重复指定的次数:
# input list inputList = [5, 6, 7] # Repeating the input list 2 times using the * operator print(inputList * 2)
输出
执行上述程序后,将生成以下输出:
[5, 6, 7, 5, 6, 7]
这里,我们取了一个包含随机值的列表,并使用 * 运算符将其乘以两次,因此输出包含重复两次的给定列表。
* 运算符作为引用的工作方式
序列/列表中的项目不会被复制,而是被多次引用。
inputList_1=[[3]] inputList_2= inputList_1*3
示例
列表 inputList_2 的元素对应于列表 inputList_1 中的相同元素。因此,更改列表 inputList_1 中的任何元素都将更改列表 inputList_2 中的元素。
# Input list inputList_1=[4] # Multiplying the whole input list_1 three times using the Repetition Operator inputList_2= inputList_1*3 print('The Input list 1 without modification : ',inputList_1) print('The Input list 2 without modification : ',inputList_2) # Modifying the first element value of the input list with 20 inputList_1[0]= 20 #printing the output print('The Input list 1 after modification : ',inputList_1) print('The Input list 2 after modification : ',inputList_2)
输出
The Input list 1 without modification : [4] The Input list 2 without modification : [4, 4, 4] The Input list 1 after modification : [20] The Input list 2 after modification : [4, 4, 4]
第一个列表只有一个元素 4,然后我们用重复运算符 (*) 将其乘以三倍并将其保存在另一个列表 (input list 2) 中。当我们更改第一个列表的值时,我们可以看到第二个列表的元素会发生变化,而无需更改第二个列表 (input list 2)。这意味着序列/列表中的项目/元素被多次引用而不是被复制。
使用 * 运算符解包函数
此方法在以原始格式(没有任何逗号和括号)打印数据时非常方便。许多程序员试图通过融合函数来去除逗号和括号,因此这个简单的星号前缀可以解决您在解包它们时遇到的问题。
算法(步骤)
以下是执行所需任务的算法/步骤:
创建一个变量来存储输入列表并赋予其一些随机值。
要打印用空格分隔的列表元素(不带括号 []),我们首先通过将 str 和 list 作为参数传递给 map() 函数来将列表转换为字符串。它将列表的每个元素转换为字符串类型并返回生成的项目列表。 join() 函数 (join() 用于连接由字符串分隔符分隔的序列元素) 用于将结果列表转换为字符串。
我们可以使用星号运算符 (*) 来打印用空格分隔的列表,而不是使用前面的方法。
示例
# input list inputList = ['TutorialsPoint', 'Python', 'Codes', 'hello', 5, 'everyone', 10, 5.3] # Converting list elements to string using map() # Applying join() function to convert list to string # Without using the asterisk (*) operator print('Without Using * Operator :') print(' '.join(map(str,inputList))) # Using the asterisk (*) operator print('Using * operator : ') print (*inputList)
输出
Without Using * Operator : TutorialsPoint Python Codes hello 5 everyone 10 5.3 Using * operator : TutorialsPoint Python Codes hello 5 everyone 10 5.3
两种方法的输出相同。
重复值为 0 时
当提供小于或等于 0 的值时,将返回相同类型的空序列。
示例 1
当输入乘以 0 时,以下程序返回一个空列表:
# input list inputList = [5, 6, 7] # returning an empty list when repetition Value is given 0 print(inputList * 0)
输出
执行上述程序后,将生成以下输出
[]
我们在这里使用 0 作为重复值,因此我们得到一个空列表,因为任何东西乘以 0 都等于 0(空)。
示例 2
当输入乘以任何小于 0 的数字时,以下程序返回一个空列表
# input list inputList = [5, 6, 7] # returning an empty list when repetition Value is given -4 print(inputList * -4)
输出
执行上述程序后,将生成以下输出
[]
因为 * 运算符只接受正值,所以当我们传递 -4 作为重复值时,我们会得到一个空列表。如果有任何负值,它无法将它们相乘,因此返回一个空列表。
结论
本文涵盖了列表上 * 重复运算符的所有情况。我们还讨论了它在各种场景中的行为方式。我们学习了如何使用 * 运算符打印用空格分隔的列表元素。这在各种情况下都很有用,例如编程竞赛,可以节省时间,而无需编写许多函数。