Làm cách nào để chia danh sách thành danh sách phụ dựa trên phạm vi chỉ mục?
ví dụ. Danh sách ban đầu:
list1 = [x,y,z,a,b,c,d,e,f,g]
Sử dụng chỉ số phạm vi 0 trận4:
list1a = [x,y,z,a,b]
Sử dụng chỉ mục phạm vi 5 trận9:
list1b = [c,d,e,f,g]
Tôi đã biết các chỉ số [biến] của các thành phần danh sách có chứa một chuỗi nhất định và muốn chia danh sách dựa trên các giá trị chỉ mục này.
Cũng cần chia thành số lượng khác nhau của danh sách phụ, tức là:
list1a
list1b
.
.
list1[x]
mkrieger1
Huy hiệu vàng 16K448 Huy hiệu bạc57 Huy hiệu đồng4 gold badges48 silver badges57 bronze badges
hỏi ngày 2 tháng 9 năm 2013 lúc 10:15Sep 2, 2013 at 10:15
1
Trong Python, nó được gọi là cắt lát. Dưới đây là một ví dụ về ký hiệu lát cắt của Python:
>>> list1 = ['a','b','c','d','e','f','g','h', 'i', 'j', 'k', 'l']
>>> print list1[:5]
['a', 'b', 'c', 'd', 'e']
>>> print list1[-7:]
['f', 'g', 'h', 'i', 'j', 'k', 'l']
Lưu ý làm thế nào bạn có thể cắt một cách tích cực hoặc tiêu cực. Khi bạn sử dụng một số âm, điều đó có nghĩa là chúng tôi cắt từ phải sang trái.
Đã trả lời ngày 2 tháng 9 năm 2013 lúc 10:20Sep 2, 2013 at 10:20
TerryaterryaTerryA
57.2K11 Huy hiệu vàng117 Huy hiệu bạc139 Huy hiệu đồng11 gold badges117 silver badges139 bronze badges
1
Lưu ý rằng bạn có thể sử dụng một biến trong một lát:
l = ['a',' b',' c',' d',' e']
c_index = l.index["c"]
l2 = l[:c_index]
Điều này sẽ đặt hai mục đầu tiên của L trong L2
Đã trả lời ngày 2 tháng 9 năm 2013 lúc 10:33Sep 2, 2013 at 10:33
0
Nếu bạn đã biết các chỉ số:
list1 = ['x','y','z','a','b','c','d','e','f','g']
indices = [[0, 4], [5, 9]]
print [list1[s:e+1] for s,e in indices]
Lưu ý rằng chúng tôi đang thêm +1 vào cuối để tạo ra phạm vi bao gồm ...
Đã trả lời ngày 2 tháng 9 năm 2013 lúc 10:31Sep 2, 2013 at 10:31
Jon Clements ♦ Jon Clements♦Jon Clements
135K32 Huy hiệu vàng240 Huy hiệu bạc273 Huy hiệu Đồng32 gold badges240 silver badges273 bronze badges
list1a=list[:5]
list1b=list[5:]
Đã trả lời ngày 2 tháng 9 năm 2013 lúc 10:17Sep 2, 2013 at 10:17
no1no1no1
7072 Huy hiệu vàng8 Huy hiệu bạc21 Huy hiệu đồng2 gold badges8 silver badges21 bronze badges
5
Một trong những cách để làm điều đó nếu bạn có nhiều chỉ mục hoặc biết phạm vi của các chỉ mục bạn cần có:
Split_Points - những điểm mà bạn sẽ phân chia chuỗi hoặc danh sách của mình
K - Phạm vi bạn cần chia, ví dụ = 3
split_points = [i for i in range[0, len[string], k]]
parts = [string[ind:ind + k] for ind in split_points]
Đã trả lời ngày 11 tháng 4 năm 2021 lúc 18:32Apr 11, 2021 at 18:32
list1=['x','y','z','a','b','c','d','e','f','g']
find=raw_input["Enter string to be found"]
l=list1.index[find]
list1a=[:l]
list1b=[l:]
Đã trả lời ngày 2 tháng 9 năm 2013 lúc 10:28Sep 2, 2013 at 10:28
no1no1no1
7072 Huy hiệu vàng8 Huy hiệu bạc21 Huy hiệu đồng2 gold badges8 silver badges21 bronze badges
0
Một trong những cách để làm điều đó nếu bạn có nhiều chỉ mục hoặc biết phạm vi của các chỉ mục bạn cần có:
list1a = [x,y,z,a,b]
0Split_Points - những điểm mà bạn sẽ phân chia chuỗi hoặc danh sách của mìnhMar 4, 2021 at 21:17
K - Phạm vi bạn cần chia, ví dụ = 3Shady
Đã trả lời ngày 11 tháng 4 năm 2021 lúc 18:321 silver badge6 bronze badges
Đã trả lời ngày 2 tháng 9 năm 2013 lúc 10:28
list1a = [x,y,z,a,b]
1Hãy xem xét mã pesudocate cốt lõi của ví dụ sau:Jun 27 at 16:37
Đã trả lời ngày 4 tháng 3 năm 2021 lúc 21:17Vincenzooo
Shadyshady1 gold badge16 silver badges29 bronze badges