>>> a = ['foo.py']
>>> k = ['nice', '-n', '10']
>>> a.insert(0, k)
>>> a
[['nice', '-n', '10'], 'foo.py']
Tôi muốn liệt kê k
ở cùng cấp với foo.py
, thay vì danh sách con.Làm cách nào để chèn danh sách ở mặt trước của danh sách khác?
>>> a = ['foo.py']
>>> k = ['nice', '-n', '10']
>>> a.insert(0, k)
>>> a
[['nice', '-n', '10'], 'foo.py']
Tôi muốn liệt kê k
ở cùng cấp với foo.py
, thay vì danh sách con.Làm cách nào để chèn danh sách ở mặt trước của danh sách khác?
Áp dụng cắt:
a[0:0] = k
Hoặc làm điều đó bằng tay:
a = k + a
Phương pháp đầu tiên vẫn như cũ để chèn vào bất cứ nơi nào, tức là a[n:n] = k
sẽ chèn k ở vị trí n, nhưng cách tiếp cận thứ hai sẽ không giống nhau, sẽ là
a = a[:n] + k + a[n:]
>>> k + a
['nice', '-n', '10', 'foo.py']
Sử dụng danh sách nối:
a = k + a
thay vì:
>>> a.insert(0, k)
sử dụng:
>>> k.extend(a)
>>> k
['nice', '-n', '10', 'foo.py']
này cập nhật "k" danh sách "tại chỗ" thay vì tạo một bản sao .
kết nối danh sách (k + a) sẽ tạo bản sao.
tùy chọn cắt (a [0: 0] = k) cũng sẽ cập nhật "tại chỗ" nhưng IMHO khó đọc hơn.
>>> a = ['foo.py']
>>> k = ['nice', '-n', '10']
>>> k.extend(a)
>>> print k
['nice', '-n', '10', 'foo.py']
list1=list(xrange(1,11)) # numbers 1 to 10 in list
list1[:0]=[0,0,0] # adds triple 0s to front of list
list1+=[11,12,13] #adds [11,12,13] to the end of list
print list1
Wow! Hãy để tôi cố gắng để grok đó. – canadadry
Tôi đã chọn giải pháp cắt của bạn. Cảm ơn bạn. – canadadry