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 作为重复值时,我们会得到一个空列表。如果有任何负值,它无法将它们相乘,因此返回一个空列表。

结论

本文涵盖了列表上 * 重复运算符的所有情况。我们还讨论了它在各种场景中的行为方式。我们学习了如何使用 * 运算符打印用空格分隔的列表元素。这在各种情况下都很有用,例如编程竞赛,可以节省时间,而无需编写许多函数。

更新于:2023年11月3日

15K+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告