2011-08-04 4 views
-1

working with a big list 다음 목록을 생성하는이 프로그램에 대한 내 이전 게시물입니다. 필자가 작성한 프로그램은 큰 연결 목록을 다룬다. 이 목록을 phonemeList라고합니다. 목록은 다음과 같습니다.한 목록의 항목과 다른 목록의 항목이 둘 다 외부 목록에있는 경우

[[('dh', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.35], [-1, -1]]), 

    ('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1,-1]]), 

    ("'", None), 

    ('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]]), 

    ('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]), 

    ('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]), 

    ("'", None), 

    ('p', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]), 

    ('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1, -1]]), 

    ("'", None), 

    ('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]]), 

    ('iy', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.1, 0.15], [-1, -1]]), 

    ('ng', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.09, 0.3], [-1, -1]]), 

    ("'", None), 

    ('er', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.5], [-1, -1]]), 

    ("'", None), 

    ('sh', [[-1, -1], [-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [-1, -1]]), 

    ('eh', [[-1, -1], [-1, -1], [0.1, 0.5], [-1, -1], [0.4, 0.7], [-1, -1]]), 

    ('m', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]), 

    ("'", None), 

    ('p', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]), 

    ('uw', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.5, 1.0]]), 

    ('dx', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.35], [-1, -1]]), 

    ("'", None), 

    ('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]), 

    ("'", None), 

    ('er', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.5], [-1, -1]]), 

    ("'", None), ('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1,-1]]), 

    ("'", None), 

    ('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]), 

    ('iy', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.1, 0.15], [-1, -1]]), 

    ("'", None), 

    ('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1, -1]]), 

    ('n', [[-1, -1], [-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [-1, -1]]), 

    ('t', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.4], [-1, -1]]), 

    ('l', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]), 

    ("'", None), ('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15,0.6], [-1, -1]]), 

    ('ah', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]), 

    ('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]])]] 

프로그램에 대한 아이디어를 얻으실 수 있도록 협조 부탁드립니다. 고맙습니다. [0.15,0.6]은 목록이 아니라 범위입니다. 여기서 그것은 틀릴 수도있는 목록으로 표현됩니다. 이것은 값이 0.15에서 0.6까지 다양하다는 것을 의미합니다. 여기서 [-1, -1]은 사용되지 않고 범위를 나타내는 양의 범위로 대체 될 수있는 범위가없는 항목입니다. 이제 'dh'항목과 'ih'항목을 비교해야합니다. 'dh'의 첫 번째 항목은 'ih'의 첫 번째 항목과 비교되고 두 번째 항목은 두 번째 항목과 비교됩니다. 그러면 'dh'항목은 'k'항목을 '무시'항목과 비교됩니다. 'dh'는 모든 규칙을 따르는 것과 비교됩니다. 그런 다음 'ih'가 등장하고 같은 일이 반복됩니다. 이 작업을 수행하는 동안 (" '", 없음) 무시해야합니다. 비교 중에 범위가 변경되고 [-1, -1]이 바뀝니다. (" ', 없음) 경계와 같습니다. 모든 항목을 서로 비교 한 후 다음 단계는 이러한 경계 내에서 비교하는 것입니다. 초심자이기 때문에 이것은 나에게 정말로 복잡한 일입니다. 그러나 이것은 또한 내 주요 프로젝트이므로 제발 도와주세요. 고맙습니다.

+2

비교 대상은 무엇입니까? – miku

+2

이것은 끔찍한 코드 붙여 넣기입니다. –

+0

비교는 첫 번째 음소 'dh'가 'ih'인 다음 단어와 비교되는 것입니다. dh ie [-1, -1]의 첫 번째 항목과 같은 항목 간의 비교는 [-1, -1] 인 ih의 첫 번째 항목과 비교됩니다. 그런 다음 두 번째 항목과 세 번째 항목 등. 비교하는 동안 따라야 할 몇 가지 규칙이 있습니다. 규칙 중 하나는 [-1, -1]은 +1 슬롯의 범위로 바꿀 수있는 빈 슬롯과 같습니다. 비교의 모든 규칙도 써야합니다. – zingy

답변

0

솔직히 말해서, 중첩 목록이 아닌 클래스가 필요하다고 생각됩니다. 클래스가 혼란 경우

if phoneme1.fricative == phoneme2.fricative: 
    do_something_awesome() 

아, 난 당신 checkouttheselinks.에게 좋을 것 그 4 튜토리얼 클래스의 꽤 괜찮은 설명은 다음과 같습니다

class Phoneme(): 
    def __init__(self,named,variables,for,every,paired,value,in,the,crazy,list,you,posted): 
     self.named = named 
     self.variables = variables 
     ##etc 
     ##This way, we can see what you're comparing. The comparisons also become much easier. 

은 이제 말 그대로 단지 같은 것을 할 수있다 비교합니다. 마지막 하나는 공식 튜토리얼입니다. Dive into Python은 또 다른 훌륭한 예이지만 이미 다른 프로그래밍 언어를 알고있는 사람들을 대상으로합니다. 따라서 파이썬이 처음이라면 다소 어려울 수 있습니다.

+0

감사합니다. 나는 수업에 대해 생각해 봤지만 문제는 해결했지만 항상 수업에 대해 혼란스러워했습니다. 너는 내가 필요한 수업이 옳다.나는 그것에 대해 연구하고 내가 얻는 곳을 볼 것입니다. – zingy

+0

클래스의 명확한 예제가있는 좋은 파이썬 튜토리얼에 대한 링크를 제공하기 위해 필자의 대답을 편집했습니다. 나는 파이썬을위한 비디오 튜토리얼을 가지고있는 www.showmedo.com을 포함하는 것을 잊었다. – Jonathanb

+0

감사합니다. 그것들을 들여다 볼 것이다. – zingy

관련 문제