Python 如何使用*运算符对列表进行操作

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,然后我们使用重复操作符(*)将其乘以三次,并保存在另一个列表中(输入列表2)。当我们改变第一个列表的值时,可以看到第二个列表的元素发生变化,而第二个列表(输入列表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作为重复值传递时,我们得到一个空列表。如果有任何负值,它无法将它们相乘,因此返回一个空列表。

结论

本文涵盖了与*重复运算符在列表上的每种情况。我们还讨论了它在不同情境下的行为。我们学会了如何使用*运算符以空格分隔的方式打印列表元素。这在各种情况下都很有用,例如编程竞赛,可以节省时间而不是编写大量的函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程