星号*运算符在python中的作用
作用
乘法运算符
在算术运算里,*
用于执行乘法操作。
a = 3
b = 4
result = a * b
print(result)
重复序列
当*
应用于列表、元组或字符串时,它可以对这些序列进行重复操作。
# 重复列表
# 使用 * 运算符对列表 my_list 进行重复操作,重复次数为 3。这意味着列表中的元素会被重复添加到新列表中 3 次。
my_list = [1, 2]
new_list = my_list * 3
print(new_list) // [1, 2, 1, 2, 1, 2]
# 重复元组
my_tuple = (3, 4)
new_tuple = my_tuple * 2 // 重复次数为2
print(new_tuple) // (3, 4, 3, 4)
# 重复字符串
my_string = "abc"
new_string = my_string * 2 // 重复次数为2
print(new_string) // abcabc
解包运算符
- 在函数调用时解包参数:在函数调用时,
*
可以把列表、元组或其他可迭代对象解包成单独的参数。 def add_numbers(a, b, c): return a + b + c numbers = [1, 2, 3] result = add_numbers(*numbers) print(result) // 6
- 在赋值语句中解包:在赋值语句里,
*
可以用于收集多余的元素到一个列表中。 a, *b, c = [1, 2, 3, 4, 5] print(a) // 1 print(b) // [2, 3, 4] print(c) // 5
定义函数时接收可变数量的位置参数
在定义函数时,*
可以用于定义一个可变数量的位置参数,这些参数会被收集到一个元组中。
def sum_numbers(*args):
return sum(args)
result = sum_numbers(1, 2, 3, 4)
print(result)
字典解包(**
)
**
是*
的扩展,用于字典解包。在函数调用时,**
可以把字典解包成键值对参数。
def print_info(name, age):
print(f"Name: {name}, Age: {age}")
info = {"name": "Alice", "age": 25}
print_info(**info)
name, age = **info 这么写是不对的!! 解包的*不能直接用于赋值语句!
在定义函数时接收可变数量的关键字参数
在定义函数时,**
可以用于定义一个可变数量的关键字参数,这些参数会被收集到一个字典中。
def print_user_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_user_info(name="Bob", age=30, city="New York")
综上所述,*
在 Python 中是一个功能强大且用途广泛的运算符,掌握它的不同用法能让你更高效地编写 Python 代码。