复制并附加到空列表

时间:2015-04-27 07:06:23

标签: python python-3.x

在一段代码中,我需要复制一个列表并附加一个新值。我发现了以下行为:

b=[n for n in a]
b.append('val')
print(b)
['val']

然而,以下工作正如我所要求的那样:

with sd as (
Select * from SalesDetails 
where (Product in ('Apple', 'Banana'))
)
Select * from sd where invoiceid in (Select invoiceid from 
  sd group by invoiceid having Count(distinct product) = 2)

任何见解为何如此?

3 个答案:

答案 0 :(得分:3)

append修改列表到位,它不会返回新列表,这就是您获得None的原因。

请参阅documentation

  

..添加,减少或重新安排其成员的方法,并且不返回特定项目,永远不会返回集合实例本身但是没有

答案 1 :(得分:2)

方法if (self.tableView.dragging == NO && self.tableView.decelerating == NO) { [self startIconDownload:appRecord forIndexPath:indexPath]; } 会返回append,因为它会修改列表,这就是您的第一个示例中Noneb的原因。您可以使用列表连接来复制列表并向其追加元素:

None

答案 2 :(得分:1)

这是因为mb_convert_encoding()没有返回任何内容。具体而言,b=[n for n in a].append('val')不会返回任何值。