2014-04-16 2 views
0

불특정 다수의 사용자 이름과 암호가 포함 된 단일 목록을 만들려고합니다. 나는이 목록을 아래에 포함되어 있습니다 유형 "사용자"의 클래스 객체가 포함하려고이에클래스 개체 목록을 만들기 위해 서로 일치하는 두 목록 가입

usernames = [John, Tim, Scott] 
passwords = [password, password1, password2] 

:

간단히
import datetime 
import sys 


class User: 

    global_count = 0 

    def __init__(self, username, key): 
     self.username = username 
     self.key = key 
     User.global_count += 1 

    def showGlobalCount(self): 
     print "Number of Keys: %d" % global_count 

    def showKeys(self): 
     print "username: " + self.username 
     print "key: " + self.key + '\n' 

을 넣어,이를 설정하고 싶은

userInfo = [(John, password), (Tim, password1), (Scott, password2)] 

아래 코드는 지금까지 내가 가지고있는 코드입니다. 이렇게하면 사용자 이름이 들어있는 목록과 암호가 들어있는 목록이 만들어집니다. 사용자 이름 목록을 해당 암호와 결합하는 방법을 찾고 싶습니다.

from Credentials import * 

def main(): 

    with open("Info.txt", "r") as infile: 
     data = [line.rstrip().split(",") for line in infile] 
     usernames, passwords = zip(*data) 

    usernameList = [] 
    passwordList = [] 

    for user in usernames: 
     usernameList.append(user) 

    for key in passwords: 
     passwordList.append(key) 

    print usernameList,passwordList 

if __name__ == "__main__": 
    main() 

아무도 도와 줄 수있는 사람이 있으면 감사하겠습니다.

+0

각 줄에 쉼표로 구분 된 사용자 이름과 암호가있는 텍스트 파일이 있습니다. 이것을 [username, password]의 2 요소 목록의 목록으로 추출합니다. 이들을 사용자 이름의 튜플과 비밀번호 튜플로 압축합니다. 그런 다음 빈 목록을 만들고 튜플을 반복하고 목록에 추가하여 이러한 튜플을 목록으로 변경합니다. 너 뭐하려고? 왜 앞뒤로 그냥 건너 뛰지 않고 그냥'userList = [User (* line.rstrip(). split (',')) for line in infile]'? –

답변

3

당신은이 목록을 압축 한 후 개체를 만들 수 있습니다 :

users = [User(user, password) for user, password in zip(usernameList, passwordList)] 

편집

당신이 그것을 읽을 때 데이터를 압축 해제 한 후 다시 압축 할지라도, 나는 그것이 생각 적은 시간 낭비. 데이터가 필요로하는 목록이므로

+0

그런 다음 어떻게 사용자 목록을 인쇄 하시겠습니까? 간단한'print user' 문은 다음과 같은 것을 반환합니다 :

+0

클래스에 __str__ 메쏘드를 정의하거나 객체를 생성하지 마십시오 : users = [(user, password) for user, password in zip (usernameList, passwordList)] – rlaverde

+0

@ dehone12 : 이미 'showKeys' 기능이 있습니다. 그냥 사용자의 사용자를 위해 그것을 호출하십시오 : user.showKeys()'. – ssm