Отбираем из них с помощью random какое-то количество элементов и пытаемся получить последний элемент и все, кроме последнего. Очевидное решение - метод pop:
import random my_data = [[a,b,c] for a in range (10) for b in range (10) for c in ('q','w','e','r','t','y','u','i','o')] for i in range(20): ts = random.sample(my_data, 20) for a in ts: ans = a.pop() print (a, 'last:', ans)
[7, 3] last: u
[4, 9] last: i
[3] last: 1
[2] last: 3
[2, 0] last: r
[7, 1] last: q
[9, 4] last: t
[2] last: 2
[0, 4] last: i
[4, 2] last: o
[3] last: 5
[5, 7] last: e
import random my_data = [[a,b,c] for a in range (10) for b in range (10) for c in ('q','w','e','r','t','y','u','i','o')] for i in range(20): ts = random.sample(my_data, 20) for a in ts: ans = a[-1] print (a[:-1], 'last:', ans)
Почему так?
ЗЫ: если убрать рандомную выборку и с помощью pop извлекать элементы прямо из my_data , то все опять-таки работает корректно. Проблема возникает именно при совместной работе random.sample и pop.