Найти - Пользователи
Полная версия: Срезы в многомерном списке
Начало » Центр помощи » Срезы в многомерном списке
1
vitz
 a = [[2,4,2,4,5,"FF"],[3,2,"D",1,5]] # список
b = [3,2] #
print([[4,5,"FF"],["D",1,5]])
Спасибо, если кто поможет буду очень признателен.
AD0DE412
эээ три последних элемента в каждлм элементе?
 In [1]: a = [[2,4,2,4,5,"FF"],[3,2,"D",1,5]]
In [2]: b = [i[-3:] for i in a]
In [3]: b
Out[3]: [[4, 5, 'FF'], ['D', 1, 5]]
или шо?
vitz
нет
в списке a на выходе должно быть: 1-список убираем первые три значения(2,4,2), второй список-убираем первые два знечения(3,2).На выходе OUT = [, ]
xam1816
 a = [[2,4,2,4,5,"FF"],[3,2,"D",1,5]]
res = [a[0][3:],a[1][2:]]
print(res)
py.user.next
  
>>> a = [[2, 4, 2, 4, 5, "FF"], [3, 2, "D", 1, 5]]
>>> b = [3, 2]
>>> 
>>> out = [i[j:] for i, j in zip(a, b)]
>>> out
[[4, 5, 'FF'], ['D', 1, 5]]
>>>
AD0DE412
 a = [[2,4,2,4,5,"FF"],[3,2,"D",1,5]]
y = 3
b = [j[y - i:] for i, j in enumerate(a)]
py.user.next у вас получше получилось
vitz
Спасибо
py.user.next
AD0DE412
  
a = [[2,4,2,4,5,"FF"],[3,2,"D",1,5]]
y = 3
b = [j[y - i:] for i, j in enumerate(a)]

Вот его код
vitz
  
a = [[2,4,2,4,5,"FF"],[3,2,"D",1,5]] # список
b = [3,2] #

Я так понял, что вот этот список b у него может меняться. Там не всегда 3 и 2. Там может быть, допустим, 4 и 8 или 3 и 0.

Поэтому у тебя вот этот код сломается, если там будет не 3 и 2.

А теперь посмотрим на мой код
  
>>> a = [[2, 4, 2, 4, 5, "FF"], [3, 2, "D", 1, 5]]
>>> b = [4, 8]
>>> 
>>> out = [i[j:] for i, j in zip(a, b)]
>>> out
[[5, 'FF'], []]
>>> 
>>> 
>>> a = [[2, 4, 2, 4, 5, "FF"], [3, 2, "D", 1, 5]]
>>> b = [3, 0]
>>> 
>>> out = [i[j:] for i, j in zip(a, b)]
>>> out
[[4, 5, 'FF'], [3, 2, 'D', 1, 5]]
>>>
Как видим, ему всё равно, что там в этом списке, он правильно срабатывает в каждом случае.

Если брать код xam1816'а, то для двух элементов это сработает, а для тысячи элементов это сработает? Они просто будут приходить в потоке откуда-то там, из файла или из сети или из динамической базы данных. Каждый раз руками ты не понабираешь их индексы и никогда не угадаешь, сколько их там будет. Поэтому тут нужен цикл какой-то, включение там или просто прямой цикл.
vitz
PYTHON:
a = [, ] # удалить дубликаты с сохранением последовательности
???
print([,]) # результат
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB