python变量前加星号_python中星号变量的几种特殊用法

本文详细介绍了Python中星号(*)和双星号(**)变量的作用及使用方法,包括它们在函数参数传递中的应用以及如何利用单星号(*)拆解变量。
部署运行你感兴趣的模型镜像

一、什么是星号变量

最初,星号变量是用在函数的参数传递上的,在下面的实例中,单个星号代表这个位置接收任意多个非关键字参数,在函数的*b位置上将其转化成元组,而双星号代表这个位置接收任意多个关键字参数,在**b位置上将其转化成字典:

#!/usr/bin/env python

#coding=utf-8

#--------

def one(a,*b):

"""a是一个普通传入参数,*b是一个非关键字星号参数"""

print(b)

one(1,2,3,4,5,6)

#--------

def two(a=1,**b):

"""a是一个普通关键字参数,**b是一个关键字双星号参数"""

print(b)

two(a=1,b=2,c=3,d=4,e=5,f=6)

#程序输出

(2, 3, 4, 5, 6)

{'b': 2, 'c': 3, 'e': 5, 'f': 6, 'd': 4}

#从输出中可以看到,第一个函数中,*b的位置可以传入任意多没有关键字的参数,*b会将这些传入参数转化成一个元组,下面的调用

one(1,2,3,4,5,6)

#传入one(a,*b)后,等价与

one(1,(2,3,4,5,6))

#第二个函数中,**b的位置可以接收任意多个关键字参数,下面的调用

two(a=1,b=2,c=3,d=4,e=5,f=6)

#传入one(a,*b)后,等价与

two(a=1,{'b': 2, 'c': 3, 'e': 5, 'f': 6, 'd': 4})

在了解了单星号和双星号的基本使用方法后,下面来看看他们的扩展用法。

二、单星号变量实例

单星号变量不仅仅能够用在函数的参数传递中,实际上对一个普通变量使用单星号前缀,能够将这个变量拆分成单个元素,请看下面的实例:

#!/usr/bin/env python

#coding=utf-8

#--------

def one(*x):

"""输出传入的第一个参数"""

print(x[0])

#--------

lst=["a","b","c","d"]stri="www.qingsword.com"

one(stri,lst)

one(*lst)

one(*stri)

#程序输出

www.qingsword.com

a

w

#第一次调用one(stri,lst),代入one(*x)后等价与

one((["a","b","c","d"],"www.qingsword.com"))

#第二次调用one(*lst),代入one(*x)后等价与

one(("a","b","c","d"))

#第三次调用one(*stri),代入one(*x)后等价与

one(("w","w","w",".","q","i","n","g","s","w","o","r","d",".","c","o","m"))

#如果在变量前面使用单星号,实际上是对变量的一次拆解操作,将变量中单独的元素拆解出来,然后依次传入one()函数,而传入one()函数后,one()函数会将这些传入的单个元素保存成一个元组,这就是为什么我们 print(x[0])能够提取第一个元素的原因

为了验证这一点,我们修改一下one()函数,如下:

#!/usr/bin/env python

#coding=utf-8

#--------

def one(*x):

"""一个错误的实例,尝试修改传入的第一个参数值,引发异常"""

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值