gpt4 book ai didi

python 星号(*)的多种用途

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python 星号(*)的多种用途由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

结论 。

概括的来说,就是对修饰的变量进行拆分, 对修饰的形式参数进行参数聚集。 单*号,将被修饰的变量按元素方式拆分, 对修饰的形式参数进行参数聚集。 双**号,将被修饰的变量按键值对进行拆分, 对修饰的形式参数进行参数聚集.

修饰实例变量时 。

  • 作用: 讲被修饰的实例变量或者可迭代对象进行拆分
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def func3(a, b, c):
   print ( "param a is {}, param b is {}, param c is {}" . format (a, b, c))
 
 
if __name__ = = '__main__' :
   arr1 = [ 1 , 2 , 3 ]
   print (arr1, sep = '\t' ) # [1, 2, 3]\t 正常输出
   print ( * arr1, sep = '\t' ) # 1\t2\t3 每个数字中间以\t分割
 
   arr2 = [[ 1 , 2 , 3 ], [ 3 , 4 , 5 ], [ 5 , 6 , 7 ]]
   print ( list ( zip ( * arr2))) # [(1, 3, 5), (2, 4, 6), (3, 5, 7)] 二维数组的行转列
 
   dictionary = { 'a' : 1 , 'b' : 2 , 'c' : 3 }
   print (dictionary, sep = '\t' ) # {'a': 1, 'b': 2, 'c': 3}\t 正常输出
   print ( * dictionary, sep = '\t' ) # a\tb\tc\t 每个字母中间以\t分割
 
 
   print (func3( * * dictionary)) # param a is 1, param b is 2, param c is 3

比较使用和不使用*号后产生的结果就可以发现,单*号将可迭代对象进行了拆分,按单个元素方式依次将数据传进方法。 配合其他方法使用可以优雅的完成矩阵的行转列操作.

双**号的使用,是将变量对象拆分成键值对的形式,所以只有dict类型可以使用。 注意上面的func3,他需要三个形参,但是我们只传入**dict_obj, 就完成了功能.

可迭代对象有:list, dict, tuple, generator, iterator 。

出现在方法的形式参数位置 。

  • 作用: 放在参数列表的末尾, 作为不定长的参数列表的形参接受对象。 (可以类比Java的可变参数列表)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def func1( * args):
   print ( "type" , type (args)) # type <class 'tuple'>
   print ( "all arguments: " , args) # all arguments: (1, 2, 3)
   print ( "second argument: " , args[ 1 ]) # second argument: 2
 
 
def func2( * * kw):
   print ( "type" , type (kw)) # type <class 'dict'>
   print ( "all arguments: " , kw) # all arguments: {'a': 1, 'b': 2, 'c': 3}
   print ( "second argument: " , kw[ 'a' ]) # second argument: 1
 
 
if __name__ = = '__main__' :
   a, b, c = 1 , 2 , 3
 
   func1(a, b, c)
   func2(a = a, b = b, c = c)

尽管函数func1的形参只有一个,但被传递三个参数,程序还是可以正常运行。 因为*args将三个参数以tuple形式存储,作为一个整体传递给方法func1.

同理,func2的**kw形参将传入的三个参数压成一个dict进行使用.

具体实验代码可以通过Github获得.

以上就是python 星号(*)的多种用途的详细内容,更多关于python 星号(*)的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/sight-tech/p/13024882.html 。

最后此篇关于python 星号(*)的多种用途的文章就讲到这里了,如果你想了解更多关于python 星号(*)的多种用途的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com