- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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 。
出现在方法的形式参数位置 。
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
*args 和 **kwargs 是什么意思? def foo(x, y, *args): def bar(x, y, **kwargs): 最佳答案 *args 和 **kwargs 是一个常见的惯
*args 和 **kwargs 是什么意思? def foo(x, y, *args): def bar(x, y, **kwargs): 最佳答案 *args 和 **kwargs 是一个常见的惯
*args 和 **kwargs 是什么意思? def foo(x, y, *args):def bar(x, y, **kwargs): 最佳答案
在python文档中2.4.3. Formatted string literals ,似乎可以在 f 字符串的 {} 中写一个星号后跟一个表达式,但我找不到如何使用它。 那是什么以及如何使用它?它是
这些函数定义中的*args和**kwargs是什么意思? def foo(x, y, *args): pass def bar(x, y, **kwargs): pass 参见Wha
这些函数定义中的*args和**kwargs是什么意思? def foo(x, y, *args): pass def bar(x, y, **kwargs): pass 参见Wha
这个问题在这里已经有了答案: Delegated yield (yield star, yield *) in generator functions (3 个答案) 关闭 6 年前。 假设我创建了
我有时注意到使用 *偶尔搜索光标下的单词会有略微不同的行为(通常是当我在不同的计算机之间切换时)。问题是当我搜索前面有 * 的单词时(如 c++ 指针)。例如: MyPointer *foo; ...
This question already has answers here: Keyword only parameter (1个答案) Python documentation for os.re
这是我的数据: dput(dt) structure(c(15236000, 0, 0, 0, 0, 36722900, 45971100, 0, 0, 0, 0, 99067
所以我有一个看起来像这样但有 6k 行的数据框: AWC, LocationID 333, *Yukon 485, *Lewis Rich 76, *Kodiak 666, Kodiak 54, *R
我有一个简单的问题。我想列出我们可以使用关键字星号(或星号)* 的所有场景。 我只知道这些场景: Select * from Customers; Select Count(*) from Custo
瑞安·贝茨的Railscast about git ,他的 .gitignore 文件包含以下行: tmp/**/* 使用双星号后跟一个星号的目的是什么:**/*?简单地使用 tmp/* 而不是 tm
我想以这种方式选择带有 class="x"的元素的所有后代元素: .x * { color: red; } a b
这个问题在这里已经有了答案: What does ** (double star/asterisk) and * (star/asterisk) do for parameters? (25 个答案
最近我在 Programming Paradigms 上看到了这个视频和教授。使用星号、星形和符号等术语。 这就是他如何使用这些运算符的: int i = 37; float f = *(float*
我尝试在自定义按钮中居中对齐符号星号 (*),但我做不到。 如何像其他字符一样垂直居中对齐(1,2...)? 最佳答案 只需使用不同的字符。除了 * (ASTERISK U+002A),还有许多其他类
结论 概括的来说,就是对修饰的变量进行拆分, 对修饰的形式参数进行参数聚集。 单*号,将被修饰的变量按元素方式拆分, 对修饰的形式参数进行参数聚集。 双**号,将被修饰的变量按键值对进行拆分, 对
如果我想保持功能,并且不想在中间使用 *,那么等效的替代函数是什么?例如, import operator as op print(op.eq(*map(str.upper, ['a', 'A']))
我窥视 ng2-dropdown 我可以看到(ng2-dropdown-menu.ts) 除其他事项外 transition('hidden => visible', [
我是一名优秀的程序员,十分优秀!