목록 목록이 있습니다. 각 하위 목록의 길이는 1에서 100까지 다양합니다. 각 하위 목록에는 데이터 집합에서 서로 다른 시간에 입자 ID가 포함됩니다. 주어진 시간에 모든 입자 ID의 목록을 만들고 싶습니다. 이렇게하려면 다음과 같이 사용할 수 있습니다.
list = [[1,2,3,4,5],[2,6,7,8],[1,3,6,7,8]]
list2 = [item[0] for item in list]
list2는 목록에있는 각 하위 목록의 첫 번째 요소를 포함합니다. 첫 번째 요소뿐만 아니라 1에서 100 사이의 모든 요소에 대해이 작업을 수행하고 싶습니다. 내 문제는 요소 번호 100 (또는 66 또는 77 등)이 모든 하위 목록에 존재하지 않는다는 것입니다.
각 하위 목록이 주어진 시간에 모든 입자 ID의 목록 인 목록 목록을 만드는 방법이 있습니까?
이 문제를 해결하기 위해 numpy 배열을 사용하려고 생각했습니다. 마치 목록의 길이가 모두 같으면 사소한 것 같습니다. 나는 각 목록 끝에 -1을 추가하여 모두 같은 길이로 만든 다음 음수를 마스킹하려고 시도했지만 지금까지는 작동하지 않았습니다. 주어진 시간에 ID 목록을 사용하여 다른 개별 배열을 분할합니다.
pos = pos[satIDs]
lst = [[1,2,3,4,5],[2,6,7,8],[1,3,6,7,8]]
func = lambda x: [line[x] for line in lst if len(line) > x]
func(3)
[4, 8, 7]
func(4)
[5, 8]
--최신 정보--
func = lambda x: [ (line[x],i) for i,line in enumerate(lst) if len(line) > x]
func(4)
[(5, 0), (8, 2)]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다