Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #80198
| Return-Path | <python-python-list@m.gmane.org> |
|---|---|
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.000 |
| X-Spam-Evidence | '*H*': 1.00; '*S*': 0.00; 'python.': 0.02; 'else:': 0.03; 'assign': 0.07; 'python3': 0.07; 'salary,': 0.07; 'variables': 0.07; '"__main__":': 0.09; '101': 0.09; '__name__': 0.09; 'advice.': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'variable,': 0.09; 'runs': 0.10; 'def': 0.12; "wouldn't": 0.14; '"":': 0.16; '.txt': 0.16; '1):': 0.16; 'concern,': 0.16; 'csv': 0.16; 'dict': 0.16; 'received:80.91.229.3': 0.16; 'received:dip0.t-ipconnect.de': 0.16; 'received:plane.gmane.org': 0.16; 'received:t-ipconnect.de': 0.16; 'salary:': 0.16; 'subject:variable': 0.16; 'true:': 0.16; 'folks': 0.16; 'index': 0.16; 'wrote:': 0.18; 'variable': 0.18; '>>>': 0.22; 'example': 0.22; 'import': 0.22; 'creating': 0.23; 'this?': 0.23; 'header:User-Agent:1': 0.23; 'convenient': 0.24; 'skip:e 30': 0.24; 'skip:{ 20': 0.24; 'paul': 0.24; 'file.': 0.24; 'script': 0.25; 'asking': 0.27; 'skip:" 20': 0.27; 'header:X -Complaints-To:1': 0.27; 'raise': 0.29; 'team.': 0.31; 'index,': 0.31; 'file': 0.32; 'class': 0.32; 'this.': 0.32; 'another': 0.32; 'text': 0.33; 'skip:# 10': 0.33; 'skip:_ 10': 0.34; 'something': 0.35; 'there': 0.35; 'thanks': 0.36; 'employee': 0.37; 'two': 0.37; 'list': 0.37; 'skip:o 20': 0.38; 'easiest': 0.38; 'to:addr :python-list': 0.38; 'previous': 0.38; 'to:addr:python.org': 0.39; 'skip:p 20': 0.39; 'received:org': 0.40; 'read': 0.60; 'break': 0.61; 'reaching': 0.61; 'new': 0.61; 'name:': 0.61; 'simple': 0.61; 'name': 0.63; 'soon': 0.63; 'more': 0.64; '2000': 0.65; '3000': 0.68; 'repeat': 0.74; 'age': 0.80; 'actually,': 0.84; 'column.': 0.84; 'distinguish': 0.84; 'employees:': 0.84; 'otten': 0.84; 'subject:via': 0.84; 'territory': 0.84 |
| X-Injected-Via-Gmane | http://gmane.org/ |
| To | python-list@python.org |
| From | Peter Otten <__peter__@web.de> |
| Subject | Re: generating unique variable name via loops |
| Date | Tue, 04 Nov 2014 17:06:25 +0100 |
| Organization | None |
| References | <8d3d202f-3bb8-4683-8dd7-b065fab06c34@googlegroups.com> <8df0b347-0569-4505-95f8-12baf44a1743@googlegroups.com> <m3ajo4$kit$1@dont-email.me> <mailman.15445.1415108267.18130.python-list@python.org> <ad63b305-5ffd-41b3-bb58-080386a90154@googlegroups.com> <mailman.15450.1415113261.18130.python-list@python.org> <67a561c5-82db-4a98-a9d2-d5ea18a74c50@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset="UTF-8" |
| Content-Transfer-Encoding | 8Bit |
| X-Gmane-NNTP-Posting-Host | p57bd8423.dip0.t-ipconnect.de |
| User-Agent | KNode/4.13.3 |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.15 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.15455.1415117210.18130.python-list@python.org> (permalink) |
| Lines | 141 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1415117210 news.xs4all.nl 2969 [2001:888:2000:d::a6]:51236 |
| X-Complaints-To | abuse@xs4all.nl |
| Path | csiph.com!usenet.pasdenom.info!bete-des-vosges.org!feed.ac-versailles.fr!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail |
| Xref | csiph.com comp.lang.python:80198 |
Show key headers only | View raw
Fatih Güven wrote:
> 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.
The easiest is to use the index:
#!/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 index, employee in enumerate(employees, 1):
print("#{}, name: {}".format(index, employee.name))
while True:
index = input("enter an index (1...{}) ".format(len(employees)))
if index == "":
print("That's all folks")
break
index = int(index) -1
employee = employees[index]
print("Name: {0.name}, Salary: {0.salary}".format(employee))
If the ID must stay the same for two runs of the script you have to put it
into the text file as another column. However, you are soon reaching
territory where a database is more convenient than a text file.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
generating unique variable name via loops Fatih Güven <mfthguven@gmail.com> - 2014-11-04 03:29 -0800
Re: generating unique variable name via loops Fatih Güven <mfthguven@gmail.com> - 2014-11-04 04:48 -0800
Re: generating unique variable name via loops Veek M <vek.m1234@gmail.com> - 2014-11-04 18:49 +0630
Re: generating unique variable name via loops Peter Otten <__peter__@web.de> - 2014-11-04 14:37 +0100
Re: generating unique variable name via loops Fatih Güven <mfthguven@gmail.com> - 2014-11-04 05:53 -0800
Re: generating unique variable name via loops Peter Otten <__peter__@web.de> - 2014-11-04 16:00 +0100
Re: generating unique variable name via loops Fatih Güven <mfthguven@gmail.com> - 2014-11-04 07:36 -0800
Re: generating unique variable name via loops Peter Otten <__peter__@web.de> - 2014-11-04 17:06 +0100
Re: generating unique variable name via loops Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-04 17:15 +0000
Re: generating unique variable name via loops Tim Chase <python.list@tim.thechases.com> - 2014-11-04 09:05 -0600
Re: generating unique variable name via loops Fatih Güven <mfthguven@gmail.com> - 2014-11-04 05:45 -0800
Re: generating unique variable name via loops Veek M <vek.m1234@gmail.com> - 2014-11-04 19:20 +0630
Re: generating unique variable name via loops Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-04 17:14 +0000
Re: generating unique variable name via loops Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-11-04 09:00 -0500
Re: generating unique variable name via loops Peter Otten <__peter__@web.de> - 2014-11-04 14:09 +0100
Re: generating unique variable name via loops Matthew Ruffalo <mmr15@case.edu> - 2014-11-04 10:04 -0500
csiph-web