저는 프로그래밍에 다소 익숙하며 파이썬에서 두 목록의 목록을 비교하려고합니다. 그러나이 목록의 수레는 오류가있을 수 있습니다. 여기에 예제 :Python - 근사 수와 함께 목록 목록 비교
first_list = [['ATOM', 'N', 'SER', -1.081, -16.465, 17.224],
['ATOM', 'C', 'SER', 2.805, -3.504, 6.222],
['ATOM', 'O', 'SER', -17.749, 16.241, -1.333]]
secnd_list = [['ATOM', 'N', 'SER', -1.082, -16.465, 17.227],
['ATOM', 'C', 'SER', 2.142, -3.914, 6.222],
['ATOM', 'O', 'SER', -17.541, -16.241, -1.334]]
예상 출력 :
Differences = ['ATOM', 'C', 'SER', 2.805, -3.504, 6.222]
지금까지 내 tryings : 나는 구축하는 방법을 잘 모릅니다이
def aprox (x, y):
if x == float and y == float:
delta = 0.2 >= abs(x - y)
return delta
else: rest = x, y
return rest
def compare (data1, data2):
diff = [x for x,y in first_list if x not in secnd_list and aprox(x,y)] + [x for x,y in secnd_list if x not in first_list and aprox(x,y)]
return diff
또는 튜플의 도움으로하지만, 근사값 :
def compare (data1, data2):
first_set = set(map(tuple, data1))
secnd_set = set(map(tuple, data2))
diff = first_set.symmetric_difference(secnd_set)
return diff
당신이 나를 도울 수 있기를 바랍니다! :)
는
귀하의 초기'compare' 기능은 매개 변수'data1'와'data2'을 가지고 있지만, 당신은 (세계?) 참조. – blacksite
시도해보십시오. http://stackoverflow.com/questions/6105777/how-to-compare-a-list-of-lists-sets-in-python – manvi77
fyi 'isinstance (x, float)'는 번호를 확인하는 방법입니다 유형 – ryugie