tôi bị mắc kẹt tìm này ra và tự hỏi nếu có ai có thể chỉ cho tôi đi đúng hướng ...Python - Tìm giá trị như nhau trong một danh sách và nhóm lại với nhau một danh sách mới
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ị mà được tìm thấy là giống nhau được nhóm lại thành sublist riêng của nó. Đây là nỗ lực của tôi cho đến nay, tôi nghĩ tôi nên sử dụng vòng lặp while
?
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
* Đây là nỗ lực của tôi cho đến nay * ... Vui lòng đề cập đến nếu bạn gặp phải bất kỳ sự cố nào với mã của mình. –
Tại sao lưu trữ tất cả các số? Tại sao không chỉ thu gọn nó vào một danh sách các bộ chứa hai giá trị. Số chính nó và số lần con số đó xảy ra. –