jump_p 发表于 2020-5-20 23:21:51

为什么需要加星号



为什么这里需要加星号呢?是了一下不加星号返回列表,加星号就会把中括号去掉,这是什么用法呢?

Twilight6 发表于 2020-5-20 23:24:17

random.sample()
可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。
则截取到的有可能是多个值,*red代表的是red的参数个数不确定的情况

hrp 发表于 2020-5-20 23:26:33

加星号就是将red解包

jump_p 发表于 2020-5-20 23:30:17

hrp 发表于 2020-5-20 23:26
加星号就是将red解包

解包是什么意思,太高深了

jump_p 发表于 2020-5-20 23:31:36

Twilight6 发表于 2020-5-20 23:24
则截取到的有可能是多个值,*red代表的是red的参数个数不确定的情况

这里不就是截取6个值吗,为什么是不确定?

Twilight6 发表于 2020-5-20 23:58:01

jump_p 发表于 2020-5-20 23:31
这里不就是截取6个值吗,为什么是不确定?

我说的意思是random.sample()可能截取为多个,你这边设置6了肯定为6个值丫
这一个列表全部都是你的人为截取的多个值

还有解包通俗的理解就是将容器里面的元素逐个返回出来

txxcat 发表于 2020-5-21 00:19:47

red是一个列表,print里面列表前加星号就是把列表的内容依次打印出来的意思,运行一下程序很容理解了。
>>> a

>>> print(*a)
21 27 12 20 33 11

heidern0612 发表于 2020-5-21 07:50:07

从red里面1到34随机取6个样本,所以red的参数是多个参数,加个星号代表可以接受多个参数。

禾马 发表于 2020-5-21 11:42:25

*问题解决不了{:5_109:},但是运行这个代码会少一个随机的蓝色球{:5_91:}

雨冷不及没有伱 发表于 2022-4-22 14:13:20

Twilight6 发表于 2020-5-20 23:24
则截取到的有可能是多个值,*red代表的是red的参数个数不确定的情况

问下这里不加星号为什么中括号会去掉呢

Twilight6 发表于 2022-4-22 19:52:07

雨冷不及没有伱 发表于 2022-4-22 14:13
问下这里不加星号为什么中括号会去掉呢


不加 * 号,不会去掉列表的括号的,这里只有 red 是列表,blue 是随机的一个值

所以打印 print(red) 时候就是正常打印列表,即带上 [ ...... ],而 带 * 号表示解包,相当一个个取出后一次性放 print 中打印,就不再是打印列表了

而打印 blue 就是正常的打印单个值,自然不会带上 中括号

雨冷不及没有伱 发表于 2022-4-23 08:05:33

Twilight6 发表于 2022-4-22 19:52
不加 * 号,不会去掉列表的括号的,这里只有 red 是列表,blue 是随机的一个值

所以打印 print(red) ...

谢谢
页: [1]
查看完整版本: 为什么需要加星号