Tôi có một mảng với một tập hợp các yếu tố. Tôi muốn mang một yếu tố nhất định ra phía trước nhưng nếu không thì để lại thứ tự không thay đổi. Mọi người có đề xuất về cú pháp sạch nhất cho việc này không?
Đây là điều tốt nhất tôi có thể đưa ra, nhưng có vẻ như là hình thức xấu khi có hoạt động đăng nhập n khi một hoạt động N có thể làm được.
mylist = sorted[mylist,
key=lambda x: x == targetvalue,
reverse=True]
Dharman ♦♦
28.4K21 Huy hiệu vàng76 Huy hiệu bạc129 Huy hiệu đồng21 gold badges76 silver badges129 bronze badges
hỏi ngày 18 tháng 6 năm 2009 lúc 18:52Jun 18, 2009 at 18:52
1
Tôi sẽ đi với:
mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
Đã trả lời ngày 18 tháng 6 năm 2009 lúc 18:57Jun 18, 2009 at 18:57
Mike Hordeckimike HordeckiMike Hordecki
86.8K3 Huy hiệu vàng25 Huy hiệu bạc26 Huy hiệu đồng3 gold badges25 silver badges26 bronze badges
1
Để mang [ví dụ] phần tử thứ 6 vào phía trước, sử dụng:
mylist.insert[0, mylist.pop[5]]
[Python sử dụng lập chỉ mục dựa trên tiêu chuẩn 0]
ZF007
3.6468 Huy hiệu vàng33 Huy hiệu bạc48 Huy hiệu đồng8 gold badges33 silver badges48 bronze badges
Đã trả lời ngày 18 tháng 6 năm 2009 lúc 18:55Jun 18, 2009 at 18:55
Alex Martellialex MartelliAlex Martelli
829K164 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng164 gold badges1205 silver badges1385 bronze badges
1
Điều này chỉ yêu cầu hai hoạt động danh sách [không có chỉ mục]:
mylist.remove[targetvalue]
mylist.insert[0, targetvalue]
Đã trả lời ngày 6 tháng 2 năm 2015 lúc 16:48Feb 6, 2015 at 16:48
Proskiproskiproski
3,40327 Huy hiệu bạc26 Huy hiệu đồng27 silver badges26 bronze badges
Lưu ý: Mã sau [và mã mẫu bạn cung cấp] sẽ đặt tất cả các yếu tố phù hợp ở phía trước.
x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
Ví dụ: nếu myList = [1, 2, 3, 4, 3] và x = 3, điều này sẽ dẫn đến [3, 3, 1, 2, 4].
Đã trả lời ngày 18 tháng 6 năm 2009 lúc 19:03Jun 18, 2009 at 19:03
Đầu ra
Cải thiện bài viết
Đầu ra
Cải thiện bài viết
Lưu bài viết
Đọc
This particular functionality can be performed in one line by combining these functions. The append function adds the element removed by pop function using the index provided by index function.
Python3
test_list
=
mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
0mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
1mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
2mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
3mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
2mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
5__12mylist.insert[0, mylist.pop[5]]
1 mylist.insert[0, mylist.pop[5]]
2mylist.insert[0, mylist.pop[5]]
3mylist.insert[0, mylist.pop[5]]
4mylist.insert[0, mylist.pop[5]]
5 mylist.insert[0, mylist.pop[5]]
6 mylist.insert[0, mylist.pop[5]]
7mylist.insert[0, mylist.pop[5]]
3mylist.insert[0, mylist.pop[5]]
9 x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
0x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
1x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
2x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
3x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
4mylist.insert[0, mylist.pop[5]]
1 mylist.insert[0, mylist.pop[5]]
2mylist.insert[0, mylist.pop[5]]
3mylist.insert[0, mylist.pop[5]]
4mylist.insert[0, mylist.pop[5]]
5 mylist.insert[0, mylist.pop[5]]
6 mylist.insert[0, mylist.pop[5]]
7mylist.insert[0, mylist.pop[5]]
3mylist.insert[0, mylist.pop[5]]
9 x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
0x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
1
3mylist.insert[0, mylist.pop[5]]
8x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
5 mylist.insert[0, mylist.pop[5]]
6 mylist.insert[0, mylist.pop[5]]
7mylist.insert[0, mylist.pop[5]]
The original list is : ['3', '5', '7', '9', '11'] The modified element moved list is : ['3', '7', '9', '11', '5']
Đầu ra: & nbsp;Method #2: Using sort[] + key = [__eq__]
The sort method can also be used to achieve this particular task in which we provide the key as equal to the string we wish to shift so that it is moved to the end.
Python3
test_list
=
mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
0mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
1mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
2mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
3mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
2mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
5__12mylist.insert[0, mylist.pop[5]]
1 mylist.insert[0, mylist.pop[5]]
2mylist.insert[0, mylist.pop[5]]
3mylist.insert[0, mylist.pop[5]]
4mylist.insert[0, mylist.pop[5]]
5 mylist.insert[0, mylist.pop[5]]
6 mylist.insert[0, mylist.pop[5]]
7mylist.insert[0, mylist.pop[5]]
3mylist.insert[0, mylist.pop[5]]
9 x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
0x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
1
mylist.remove[targetvalue]
mylist.insert[0, targetvalue]
0=
mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
3
mylist.remove[targetvalue]
mylist.insert[0, targetvalue]
3mylist.insert[0, mylist.pop[5]]
1 mylist.insert[0, mylist.pop[5]]
2mylist.insert[0, mylist.pop[5]]
3x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
8mylist.insert[0, mylist.pop[5]]
5 mylist.insert[0, mylist.pop[5]]
6 mylist.insert[0, mylist.pop[5]]
7mylist.insert[0, mylist.pop[5]]
3mylist.insert[0, mylist.pop[5]]
9 x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
0x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
1Đầu ra: & nbsp;
The original list is : ['3', '5', '7', '9', '11'] The modified element moved list is : ['3', '7', '9', '11', '5']
Phương pháp số 3: Sử dụng phương thức Remove [] và Chèn []
Python3
test_list
=
mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
0mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
1mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
2mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
3mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
2mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
5__12mylist.insert[0, mylist.pop[5]]
1=
9mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
00 mylist.insert[0, mylist.pop[5]]
9 x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
0x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
1mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
04=
mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
06mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
07mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
08mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
3mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
10mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
11mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
12mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
13mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
2mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
3mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
10mylist.insert[0, mylist.pop[5]]
1=
9mylist.insert[0, mylist.pop[mylist.index[targetvalue]]]
19 mylist.insert[0, mylist.pop[5]]
9 x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
0x = targetvalue
for i in range[len[mylist]]:
if[mylist[i] == x]:
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
1Đầu ra
The original list is : ['3', '5', '7', '9', '11'] The modified element moved list is : ['3', '7', '9', '11', '5']