有人可以在Python中澄清这两个表示法:
[ [] ] * n:显然这会创建对同一对象的n个引用(在本例中为空列表).在哪种情况下这有用?(i,):我看到有些人使用这种"尾随逗号"表示法(例如:在函数定义中生成{0,1,2,... n-1}的所有大小k个子集sets).这是什么意思?Ter*_*ryA 10
是的,这确实创建了对同一对象的引用:
>>> L = [[]] * 3
>>> L
[[], [], []]
>>> L[0].append(1)
>>> L
[[1], [1], [1]]
>>> map(id, L)
[4299803320, 4299803320, 4299803320]
Run Code Online (Sandbox Code Playgroud)
无论何时您想要创建具有相同项目的对象,这都非常有用.
(i,)使用该项创建一个元组i:
>>> mytuple = (5,)
>>> print mytuple
(5,)
>>> print type(mytuple)
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud)
需要逗号的原因是因为否则它将被视为整数:
>>> mytuple = (5)
>>> print mytuple
5
>>> print type(mytuple)
<type 'int'>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |