29
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Từ danh sách này:
N = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]
Tôi đang cố gắng tạo ra:
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
Bất kỳ giá trị nào được tìm thấy là giống nhau được nhóm lại thành danh sách phụ riêng của nó. Đây là nỗ lực của tôi cho đến nay, tôi nghĩ rằng tôi nên sử dụng vòng lặp
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
3?global n
n = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5] #Sorted list
l = [] #Empty list to append values to
def compare[val]:
""" This function receives index values
from the n list [n[0] etc] """
global valin
valin = val
global count
count = 0
for i in xrange[len[n]]:
if valin == n[count]: # If the input value i.e. n[x] == n[iteration]
temp = valin, n[count]
l.append[temp] #append the values to a new list
count +=1
else:
count +=1
for x in xrange [len[n]]:
compare[n[x]] #pass the n[x] to compare function
Isherwood
54,6K15 Huy hiệu vàng106 Huy hiệu bạc147 Huy hiệu đồng15 gold badges106 silver badges147 bronze badges
Khi được hỏi ngày 17 tháng 5 năm 2015 lúc 23:11May 17, 2015 at 23:11
2
Sử dụng
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
4:from itertools import groupby
N = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]
print[[list[j] for i, j in groupby[N]]]
Output:
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5]]
Lưu ý bên: Ngăn chặn sử dụng biến toàn cầu khi bạn không cần.need to.
Đã trả lời ngày 17 tháng 5 năm 2015 lúc 23:20May 17, 2015 at 23:20
Aldebaldebaldeb
6.2185 Huy hiệu vàng23 Huy hiệu bạc48 Huy hiệu đồng5 gold badges23 silver badges48 bronze badges
5
Ai đó đề cập đến
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
5 nó sẽ nhận được L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
6Nói cách khác, khi số lượng của danh sách không theo thứ tự hoặc đó là một danh sách lộn xộn, nó không có sẵn.
Vì vậy, tôi có câu trả lời tốt hơn để giải quyết vấn đề này.
from collections import Counter
N = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]
C = Counter[N]
print [ [k,]*v for k,v in C.items[]]
Đã trả lời ngày 18 tháng 5 năm 2015 lúc 2:14May 18, 2015 at 2:14
Burger Kingburger KingBurger King
2.8653 huy hiệu vàng19 Huy hiệu bạc45 Huy hiệu đồng3 gold badges19 silver badges45 bronze badges
0
Bạn có thể sử dụng
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
4 cùng với danh sách hiểu biết>>> l = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]
>>> [list[v] for k,v in itertools.groupby[l]]
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5]]
Điều này có thể được gán cho biến
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
8 như trongL = [list[v] for k,v in itertools.groupby[l]]
Đã trả lời ngày 17 tháng 5 năm 2015 lúc 23:20May 17, 2015 at 23:20
AldebaldebBhargav Rao
6.2185 Huy hiệu vàng23 Huy hiệu bạc48 Huy hiệu đồng27 gold badges122 silver badges137 bronze badges
Ai đó đề cập đến
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
5 nó sẽ nhận được L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
6Nói cách khác, khi số lượng của danh sách không theo thứ tự hoặc đó là một danh sách lộn xộn, nó không có sẵn.
new_list = []
for value in old_list:
if new_list and new_list[-1][0] == value:
new_list[-1].append[value]
else:
new_list.append[[value]]
Vì vậy, tôi có câu trả lời tốt hơn để giải quyết vấn đề này.
Đã trả lời ngày 18 tháng 5 năm 2015 lúc 2:14
for value in iterable:
do_stuff[value]
iterator = iter[iterable]
while True:
try:
value = next[iterator]
except StopIteration:
break
do_stuff[value]
Burger Kingburger King
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
02.8653 huy hiệu vàng19 Huy hiệu bạc45 Huy hiệu đồng
Bạn có thể sử dụng
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
4 cùng với danh sách hiểu biếtMay 17, 2015 at 23:18
Điều này có thể được gán cho biến
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
8 như trongabarnertBhargav Raobhargav Rao44 gold badges574 silver badges652 bronze badges
3
47.5K27 Huy hiệu vàng122 Huy hiệu bạc137 Huy hiệu đồng
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
1Bạn đang quá mức này.
Những gì bạn muốn làm là: Đối với mỗi giá trị, nếu nó giống như giá trị cuối cùng, chỉ cần nối nó vào danh sách các giá trị cuối cùng; Nếu không, tạo một danh sách mới. Bạn có thể dịch tiếng Anh đó trực tiếp sang Python:Oct 10, 2018 at 20:45
Thậm chí có nhiều cách đơn giản hơn để làm điều này nếu bạn sẵn sàng trừu tượng hơn một chút, ví dụ: bằng cách sử dụng các chức năng nhóm trong
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
9. Nhưng điều này sẽ dễ hiểu.syviadNếu bạn thực sự cần phải làm điều này với vòng lặp
3, bạn có thể dịch bất kỳ vòng lặp L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
1 nào thành vòng lặp global n
n = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5] #Sorted list
l = [] #Empty list to append values to
def compare[val]:
""" This function receives index values
from the n list [n[0] etc] """
global valin
valin = val
global count
count = 0
for i in xrange[len[n]]:
if valin == n[count]: # If the input value i.e. n[x] == n[iteration]
temp = valin, n[count]
l.append[temp] #append the values to a new list
count +=1
else:
count +=1
for x in xrange [len[n]]:
compare[n[x]] #pass the n[x] to compare function
3 như thế này:1 silver badge7 bronze badgesL = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
Hoặc, nếu bạn biết điều đó là một chuỗi, bạn có thể sử dụng vòng lặp
L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
3 đơn giản hơn một chút:L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]
2Nhưng cả hai điều này làm cho mã của bạn ít đọc hơn, ít pythonic hơn, phức tạp hơn, kém hiệu quả hơn, dễ hiểu hơn, v.v.May 18, 2015 at 1:49
Đã trả lời ngày 17 tháng 5 năm 2015 lúc 23:18Hunter McMillen
ABARNERTABARNERT22 gold badges116 silver badges165 bronze badges