2012-01-09 33 views

Trả lời

34

Á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:] 
+1

Wow! Hãy để tôi cố gắng để grok đó. – canadadry

+1

Tôi đã chọn giải pháp cắt của bạn. Cảm ơn bạn. – canadadry

2
>>> k + a 
['nice', '-n', '10', 'foo.py'] 
4

Sử dụng danh sách nối:

a = k + a 
10

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.

+0

Điều đó sẽ nối thêm vào cuối k. a sẽ vẫn giữ nguyên như trước. – 0605002

+1

@FlopCoder: rõ ràng là anh ta có thể tạo ra a = k, điểm quan trọng là biết tại chỗ và sao chép nối. –

+0

Tôi thích thay đổi 'a' tại chỗ. – canadadry

0
>>> a = ['foo.py'] 
>>> k = ['nice', '-n', '10'] 
>>> k.extend(a) 
>>> print k 
['nice', '-n', '10', 'foo.py'] 
0
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 
Các vấn đề liên quan