Повторение элементов в понимании списка У меня есть это понимание списка: [[x,x] for x in range(3)] который приводит к этому списку: [[0, 0], [1, 1], [2, 2]] но я хочу этот список: [0, 0, 1, 1, 2, 2] Что проще всего создать этот список? Ответ 1 [y for x in range(3) for y in [x, x]] Ответ 2 >>> [i for i in range(3) for _ in range(2)] [0, 0, 1, 1, 2, 2] Ответ 3 общее решение: m = 3 #the list of integers n = 2 # of repetitions [x for x in range(m) for y in range(n)] Ответ 4 >>> [int(x/2) for x in range(6)] [0, 0, 1, 1, 2, 2] Ответ 5 Мое решение: def explode_list(p,n): arr=[] track=0 if n==0: return arr while track<len(p): m=1 while m<=n: arr.append(p[track]) m=m+1 track=track+1 return arr Ответ 6 Вы можете уйти от этого: [floor(x/2) for x in range(6)] edit1 [int(x/2) for x in range(6)] - это более портативное решение в том же ключе. Хотя другие представленные ответы кажутся лучше. Ответ 7 [x/2 for x in range(6)] обновление: [x//2 for x in range(6)] #ok now ?
Ответ 3 общее решение: m = 3 #the list of integers n = 2 # of repetitions [x for x in range(m) for y in range(n)]
Ответ 5 Мое решение: def explode_list(p,n): arr=[] track=0 if n==0: return arr while track<len(p): m=1 while m<=n: arr.append(p[track]) m=m+1 track=track+1 return arr
Ответ 6 Вы можете уйти от этого: [floor(x/2) for x in range(6)] edit1 [int(x/2) for x in range(6)] - это более портативное решение в том же ключе. Хотя другие представленные ответы кажутся лучше.