2014-06-22 1 views
0

파이썬의 목록에 사용자 이름/암호 목록을 추가하도록 요청하는 클래스 할당을 수행하고 있습니다. 나는 작동하지 않는 코드가 있고 붙어있다. 내가 원하는 것은 사용자 이름에 대한 하나의 목록과 암호에 대한 하나의 목록을 갖는 것입니다.split을 사용하여 필드를 목록에 추가하기 python

여기에 제가 지금까지 가지고있는 코드가 있습니다.

for Line in open(psw): 
    fields = Line.split(":") 

print (fields) 

다음은 분할하려는 텍스트 파일입니다.

administrator:admin 

administrator:password 

admin:12345 

admin:1234 

root:root 

root:password 

root:toor 
+0

현재 작동하지 않는 기능은 무엇입니까? –

+0

'fields'는 튜플입니다. 여기서'fields [0]'은 사용자 이름이고'fields [1]'은 패스워드입니다. 두 개의 빈 목록을 만들고 그 뒤에 물건을 추가하십시오. 영리하고'zip()'을 사용할 수도 있습니다. – Blender

+0

@Blender zip()의 예를 들어 주시겠습니까? – user2363217

답변

0

2 개의 목록으로 쌍을 분할 할 필요가 없습니다. 분리 된 상태로 유지하면 정렬과 같은 작업이 훨씬 어려워집니다.

아마도 암호없이 모든 사용자의 목록을 얻길 원할 것입니다. 이것을 위해리스트 이해력을 사용할 수 있습니다 :

먼저 실제 user_pass_list를 얻어야합니다. 루프가 이미 작업을 수행하고 있으므로 추가 호출 만하면됩니다.

users = (x[0] for x in user_pass_list) 

당신은 docs에서 지능형리스트에 대한 자세한 내용을보실 수 있습니다 :

user_pass_list = [] 

for Line in open(psw): 
    fields = Line.split(":") 
    user_pass_list.append(fields) 

print (user_pass_list) 

지금 모든 사용자의 목록을 얻을 수 있습니다.

+0

도움에 감사드립니다. – user2363217

+0

출력에서 ​​\ n을 어떻게 제거합니까? – user2363217

+0

@ user2363217 string.strip (char) –

0

이 경우 사전을 사용하는 것이 좋습니다. 예를 들어 , 등등

user_pass_comb = {} 
user_pass_comb['admin'] = "root" 
user_pass_comb['student'] = "myroot" 

및 ...

이제 직접 반복자 또는 인덱스 비밀번호를 실행할 수 있으며 너무 실행중인 시간을 절약 할 수 있습니다.

모든 비밀번호를 받으려면 다음과 같이하십시오.

for i in range(user_pass_comb): 
    print user_pass_comb[i] 
+0

편집기 덕분에 – Rishi

관련 문제