在一段代码中,我需要复制一个列表并附加一个新值。我发现了以下行为:
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)
任何见解为何如此?
答案 0 :(得分:3)
append
修改列表到位,它不会返回新列表,这就是您获得None
的原因。
请参阅documentation:
..添加,减少或重新安排其成员的方法,并且不返回特定项目,永远不会返回集合实例本身但是没有。
答案 1 :(得分:2)
方法if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
{
[self startIconDownload:appRecord forIndexPath:indexPath];
}
会返回append
,因为它会修改列表,这就是您的第一个示例中None
为b
的原因。您可以使用列表连接来复制列表并向其追加元素:
None
答案 2 :(得分:1)
这是因为mb_convert_encoding()
没有返回任何内容。具体而言,b=[n for n in a].append('val')
不会返回任何值。