以下内容可用于添加切片以附加到列表前面。
func setLeftView(imageView: UIImageView, withPadding padding: CGFloat) {
let height = imageView.frame.height
let width = imageView.frame.width + padding
let paddingView = UIView(frame: CGRect(x: 36, y: 0, width: width, height: height))
paddingView.addSubview(imageView)
self.leftView = paddingView
self.leftViewMode = .always
}
用于附加到列表末尾的切片。
答案 0 :(得分:2)
如果你真的想使用切片,你可以使用a:
的长度a = [5, 6]
a[len(a):] = [1, 2, 3]
a
[5, 6, 1, 2, 3]
但最简单的是直接扩展a
:
a = [5, 6]
a += [1, 2, 3] # or a.extend([1, 2, 3])
答案 1 :(得分:1)
>>> a = [1, 2, 3]
>>> a[len(a):] = [4, 5, 6]
>>> a
[1, 2, 3, 4, 5, 6]
或
>>> a = [1, 2, 3]
>>> a += [4, 5, 6]
>>> a
[1, 2, 3, 4, 5, 6]
答案 2 :(得分:1)
你有Jeevaa和Reblochon Masque的简短回答,但是如果你想使用for循环那么试试这个:
a = [5,6]
b = [1,2,3]
for val in b[::-1]:#Reverse b and insert it to a
a.insert(0,val)
print(a)
<强>输出强>
[1,2,3,5,6]
答案 3 :(得分:1)
我认为你应该考虑extend()
:
>>> a = [1, 2, 3]
>>> a.extend([4, 5, 6])
>>> a
[1, 2, 3, 4, 5, 6]
+
和+=
运算符都是为列表定义的,它们是语义上的 类似于延伸。
list + list2
在内存中创建第三个列表,因此您可以返回 它的结果,但它要求第二个iterable是一个列表。
list += list2
就地修改列表(它是就地操作符, 和列表是可变对象,正如我们已经看到的那样)因此它不会创建一个 新名单。它也像extend一样工作,因为第二个iterable可以 是任何可迭代的。
时间复杂度
O(1)
。O(k)
。迭代多次调用append会增加复杂性, 使它等同于extend的,以及自扩展的迭代 在C中实现,如果你想追加,它总是会更快 从迭代到列表的连续项。