4 Kasım 2014 Salı 17:01:17 UTC+2 tarihinde Peter Otten yazdı: > Fatih Güven wrote: > > > 4 Kasım 2014 Salı 15:37:59 UTC+2 tarihinde Peter Otten yazdı: > >> Veek M wrote: > >> > >> > Fatih Güven wrote: > >> > > >> >> 4 Kas?m 2014 Sal? 13:29:34 UTC+2 tarihinde Fatih Güven yazd?: > >> >>> I want to generate a unique variable name for list using python. > >> >>> > >> >>> list1=... > >> >>> list2=... > >> > > >> > for x in range(1,10): > >> > exec("list%d = []" % x) > >> > >> Why would you do this? > > > > I have a structured and repetitive data. > > I was actually asking "Veek M". > > > I want to read a .txt file line > > by line and classified it to call easily. For example employee1 has a > > name, a salary, shift, age etc. and employee2 and other 101 employee have > > all of it. > > > > Call employee1.name or employee2.salary and assign it to a new variable, > > something etc. > > I can only repeat my previous advice. Instead of creating variables for > employee1, employee2, and so on make a list of employees: > > $ cat employees.txt > Peter,3000 > Paul,2000 > Mary,1000 > > $ cat employees.py > #!/usr/bin/env python3 > import csv > > class Employee: > def __init__(self, name, salary): > self.name = name > self.salary = salary > > if __name__ == "__main__": > employees = [] > with open("employees.txt") as f: > for row in csv.reader(f): > employees.append(Employee(row[0], int(row[1]))) > > for employee in employees: > print(employee.name, "-- salary:", employee.salary, "doubloons") > > $ python3 employees.py > Peter -- salary: 3000 doubloons > Paul -- salary: 2000 doubloons > Mary -- salary: 1000 doubloons > > You wouldn't want to reference Paul as employee2 -- what if the order in the > text file changed? Instead you can make a dict that maps name to employee... > > employees_by_name = {} > for employee in employees: > name = employee.name > if name in employees_by_name: > raise ValueError("duplicate name {}".format(name)) > employees_by_name[name] = employee > > and use that dict to look up an employee: > > while True: > name = input("enter a name ") > if name == "": > print("That's all folks") > break > if name not in employees_by_name: > print("unknown name") > else: > print("Salary:", employees_by_name[name].salary, "doubloons") > > $ python3 employees.py > Peter -- salary: 3000 doubloons > Paul -- salary: 2000 doubloons > Mary -- salary: 1000 doubloons > enter a name Peter > Salary: 3000 doubloons > enter a name Mary > Salary: 1000 doubloons > enter a name paul > unknown name > enter a name Paul > Salary: 2000 doubloons > enter a name > That's all folks > $
Thanks for your concern, I will try this. Actually, the main focus is that are there any other Paul in my team. So i want to create a simple ID for employee to distinguish two Paul. I belive that you have a solution for this. -- https://mail.python.org/mailman/listinfo/python-list