Trong Python, làm cách nào để chuyển một mục sang một chỉ mục xác định trong danh sách?
Tshepang
11.7K21 Huy hiệu vàng90 Huy hiệu bạc134 Huy hiệu đồng21 gold badges90 silver badges134 bronze badges
Đã hỏi ngày 3 tháng 7 năm 2010 lúc 23:14Jul 3, 2010 at 23:14
Gabriele Cirulligabriele CirulliGabriele Cirulli
10.3K25 Huy hiệu vàng69 Huy hiệu bạc98 Huy hiệu Đồng25 gold badges69 silver badges98 bronze badges
0
Sử dụng phương thức
l[index:index] = [item]
4 của danh sách:l = list[...]
l.insert[index, item]
Ngoài ra, bạn có thể sử dụng ký hiệu lát cắt:
l[index:index] = [item]
Nếu bạn muốn di chuyển một mục đã có trong danh sách sang vị trí được chỉ định, bạn sẽ phải xóa nó và chèn nó ở vị trí mới:
l.insert[newindex, l.pop[oldindex]]
Đã trả lời ngày 3 tháng 7 năm 2010 lúc 23:15Jul 3, 2010 at 23:15
6
Một giải pháp ngắn hơn một chút, chỉ di chuyển vật phẩm đến cuối, không phải bất cứ nơi nào là thế này:
l += [l.pop[0]]
Ví dụ:
>>> l = [1,2,3,4,5]
>>> l += [l.pop[0]]
>>> l
[2, 3, 4, 5, 1]
Ry- ♦♦
Phim thương hiệu vàng 212K5454 gold badges444 silver badges459 bronze badges
Đã trả lời ngày 25 tháng 4 năm 2015 lúc 11:43Apr 25, 2015 at 11:43
Tim timTim
2.4471 Huy hiệu vàng23 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge23 silver badges30 bronze badges
3
Nếu bạn không biết vị trí của mặt hàng, bạn có thể cần tìm chỉ mục trước:
old_index = list1.index[item]
Sau đó di chuyển nó:
list1.insert[new_index, list1.pop[old_index]]
hoặc IMHO một cách sạch hơn:
list1.remove[item]
list1.insert[new_index, item]
Đã trả lời ngày 26 tháng 11 năm 2015 lúc 8:14Nov 26, 2015 at 8:14
Nngeeknngeeknngeek
1.59215 huy hiệu bạc23 Huy hiệu đồng15 silver badges23 bronze badges
1
Một giải pháp rất đơn giản, nhưng bạn phải biết chỉ số của vị trí ban đầu và chỉ mục của vị trí mới:
list1[index1],list1[index2]=list1[index2],list1[index1]
Đã trả lời ngày 1 tháng 7 năm 2016 lúc 7:39Jul 1, 2016 at 7:39
1
Tôi đã mô tả một vài phương pháp để di chuyển một mục trong cùng một danh sách với thời gian. Dưới đây là những cái để sử dụng nếu j> i:
┌──────────┬──────────────────────┐ │ 14.4usec │ x[i:i]=x.pop[j], │ │ 14.5usec │ x[i:i]=[x.pop[j]] │ │ 15.2usec │ x.insert[i,x.pop[j]] │ └──────────┴──────────────────────┘
Và ở đây những người cần sử dụng nếu j
l[index:index] = [item]
0Không phải là một sự khác biệt lớn nếu bạn chỉ sử dụng nó một vài lần, nhưng nếu bạn làm những thứ nặng nề như phân loại thủ công, điều quan trọng là phải lấy cái nhanh nhất. Nếu không, tôi khuyên bạn chỉ nên dùng một thứ mà bạn nghĩ là dễ đọc nhất.
Đã trả lời ngày 27 tháng 6 năm 2020 lúc 9:24Jun 27, 2020 at 9:24
RiedlerriedlerRiedler
3272 Huy hiệu bạc11 Huy hiệu đồng2 silver badges11 bronze badges
Tôi muốn làm điều đó trong một biểu thức như thế này:
l[index:index] = [item]
1Đã trả lời ngày 26 tháng 10 năm 2021 lúc 4:28Oct 26, 2021 at 4:28
U12-ForwardU12-ForwardU12-Forward
66.6K13 Huy hiệu vàng78 Huy hiệu bạc98 Huy hiệu đồng13 gold badges78 silver badges98 bronze badges
1
l[index:index] = [item]
2
Đã trả lời ngày 23 tháng 10 năm 2020 lúc 17:27Oct 23, 2020 at 17:27
Một ví dụ hoán đổi chuyển tiếp [từ trái sang phải]:
l[index:index] = [item]
3Đã trả lời ngày 8 tháng 5 lúc 13:41May 8 at 13:41