2015-03-23 2 views
1

У меня есть список из 6 чисел, и у меня есть список из 4 списков. Я хочу поместить первые 3 числа в первый список и следующие 2 числа в списке после него и, наконец, последнее число в списке из 6 в последнем списке списков. Я знаю, что это сбивает с толку, но вот мой код, чтобы визуализировать:Перечислить список с собой и другим списком

Start_Comparing_Index = -1 
Looping_Counter = 4 # = 4 
for counter in range(4): 
Looping_Counter -= 1 # =3 
Start_Comparing_Index += 1 # = 0 
print("counter = " + str(counter)) 
for i in range(Looping_Counter): 
    s[counter].append(x[Start_Comparing_Index]) 
    print("Comp index= " + str(Start_Comparing_Index)) 
    if i == range(Looping_Counter)[-1]: 
     break 
    else: 
     Start_Comparing_Index += 1 
print(s) 


but its printing out : 

counter = 0 
Comp index= 0 
Comp index= 1 
Comp index= 2 
counter = 1 
Comp index= 3 
Comp index= 4 
counter = 2 
Comp index= 5 
counter = 3 
[[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]] 

Хотя я хочу, чтобы напечатать этот список вместо:

[[1,2,3],[4,5],[6]] 

Что случилось с моим кодом?

+0

жаль название не имеет ничего общего с кодом и х = [1,2,3,4,5,6] и S = ​​[[]] * 4 –

+0

редактировал титул с вами сам сказал, что это не имеет никакого отношения к вопросу тела (?) – logc

ответ

0
def get_lists(src, n): 
    r, s = [], 0 
    for i in range(n, -1, -1): 
     r.append(src[s:s+i]) 
     s += i 
    return r 

print(get_lists(list(range(1, 7)), 3)) 
# [[1, 2, 3], [4, 5], [6], []] 
+0

Йо Ферхат Я думаю, что решил мою проблему и что я хотел. Я отредактирую этот код, чтобы удовлетворить мои точные потребности. Большое спасибо и спасибо. –

+0

@MahmoudAyman welcome;) –

0

Странный вопрос. Если вы точно знаете длину всех списков и точное сочетание элементов, которые вы хотите в результате, почему бы вам точно не написать это без каких-либо циклов?

>>> first = range(1,7) 
>>> second = [6] 
>>> merged = [first[0:3], first[3:-1], second] 
>>> merged 
[[1, 2, 3], [4, 5], [6]] 
+0

Потому что я хочу, чтобы это был общий код, потому что иногда я не хочу брать только 3 элемента но хотите взять 4 или 5 в зависимости от определенной переменной, которую я могу извлечь из данных, вводимых пользователем. –

+0

Тогда ваш вопрос должен указать эти условия. – logc

+0

Извините, что я впервые в этом месте не знаю, в следующий раз я обязательно его добавлю. Спасибо за ваши усилия, чтобы помочь мне, оценил :) –

Смежные вопросы