{"id":209,"date":"2011-11-10T00:14:53","date_gmt":"2011-11-10T00:14:53","guid":{"rendered":"http:\/\/hhs1080.hosting.paran.com\/?p=209"},"modified":"2011-11-10T00:14:53","modified_gmt":"2011-11-10T00:14:53","slug":"python-basic","status":"publish","type":"post","link":"https:\/\/blog.goorigo.com\/?p=209","title":{"rendered":"python basic"},"content":{"rendered":"<p>\ub78c\ub2e4 \ud615\uc2dd\uc740 \uc778\uacf5\uc9c0\ub2a5 \ubd84\uc57c\ub098 AutoCAD\ub77c\ub294 \uc124\uacc4 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc4f0\uc774\ub294 Lisp \uc5b8\uc5b4\uc5d0\uc11c \ubb3c\ub824\ubc1b\uc558\ub2e4\uace0 \ud558\ub294\ub370\uc694,<br \/>\n\ud568\uc218\ub97c \ub531 \ud55c \uc904\ub9cc\uc73c\ub85c \ub9cc\ub4e4\uac8c \ud574\uc8fc\ub294 \uae30\ub625\ucc2c \ubc29\ubc95\uc785\ub2c8\ub2e4. <\/p>\n<p>lambda \uc778\uc790 : \ud45c\ud604\uc2dd<\/p>\n<p>\ub2e4\uc74c\uc740 \ub450 \uc218\ub97c \ub354\ud558\ub294 \ud568\uc218\uc785\ub2c8\ub2e4.<\/p>\n<p>&gt;&gt;&gt; def hap(x, y):<br \/>\n&#8230;   return x + y<br \/>\n&#8230;<br \/>\n&gt;&gt;&gt; hap(10,20)<br \/>\n30<\/p>\n<p>&gt;&gt;&gt; (lambda x,y: x+y)(10, 20)<br \/>\n30<\/p>\n<p>lambda \ud65c\uc6a9\ubc95<br \/>\nmap(\ud568\uc218, \ub9ac\uc2a4\ud2b8)<\/p>\n<p>\uc774 \ud568\uc218\ub294 \ud568\uc218\uc640 \ub9ac\uc2a4\ud2b8\ub97c \uc778\uc790\ub85c \ubc1b\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uc8e0?<br \/>\n\uadf8\ub9ac\uace0, \ub9ac\uc2a4\ud2b8\ub85c\ubd80\ud130 \uc6d0\uc18c\ub97c \ud558\ub098\uc529 \uaebc\ub0b4\uc11c \ud568\uc218\ub97c \uc801\uc6a9\uc2dc\ud0a8 \ub2e4\uc74c, \uadf8 \uacb0\uacfc\ub97c \uc0c8\ub85c\uc6b4 \ub9ac\uc2a4\ud2b8\uc5d0 \ub2f4\uc544\uc900\ub2f5\ub2c8\ub2e4. \ub9d0\uc774 \uc880 \ubcf5\uc7a1\ud558\uc8e0?<br \/>\n\uadf8\ub7f4 \ub54c \uc608\uc81c\ub97c \ubcf4\ub294 \uac8c \ucd5c\uace0\uc8e0.<\/p>\n<p>&gt;&gt;&gt; map(lambda x: x**2, range(5))<br \/>\n[0, 1, 4, 9, 16]<\/p>\n<p>\uc704\uc758 map \ud568\uc218\uac00 \uc778\uc790\ub85c \ubc1b\uc740 \ud568\uc218\ub294 lambda x: x**2\uad6c\uc694, \ub9ac\uc2a4\ud2b8\ub85c\ub294 range(5)\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n<p>range \ud568\uc218\ub294 \uc54c\uace0\uacc4\uc2dc\uc8e0?<br \/>\nrange(5) \ub77c\uace0 \uc368\uc8fc\uba74 [0, 1, 2, 3, 4]\ub77c\ub294 \ub9ac\uc2a4\ud2b8\ub97c \ub3cc\ub824\uc90d\ub2c8\ub2e4.<br \/>\n\uadf8\ub9ac\uace0 x**2 \ub77c\ub294 \uac83\uc740 x \uac12\uc744 \uc81c\uacf1\ud558\ub77c\ub294 \uc5f0\uc0b0\uc790\uc8e0.<\/p>\n<p>reduce(\ud568\uc218, \uc21c\uc11c\ud615 \uc790\ub8cc)<\/p>\n<p>\ud615\uc2dd\uc740 \uc704\uc640 \uac19\uad6c\uc694, \uc21c\uc11c\ud615 \uc790\ub8cc(\ubb38\uc790\uc5f4, \ub9ac\uc2a4\ud2b8, \ud29c\ud50c)\uc758 \uc6d0\uc18c\ub4e4\uc744 \ub204\uc801\uc801\uc73c\ub85c(?) \ud568\uc218\uc5d0 \uc801\uc6a9\uc2dc\ud0a8\ub2f5\ub2c8\ub2e4. \ub9d0\uc774 \uc9c4\uc9dc \uc5b4\ub835\uad70\uc694.<br \/>\n\uc774\uac83\ub3c4 \uc608\uc81c\ub098 \ubd05\uc2dc\ub2e4.<\/p>\n<p>&gt;&gt;&gt; reduce(lambda x,y: x+y, [0,1,2,3,4])<br \/>\n10<\/p>\n<p>\uc704\uc758 \uc608\uc81c\ub294 \uba3c\uc800 0\uacfc 1\uc744 \ub354\ud558\uace0, \uadf8 \uacb0\uacfc\uc5d0 2\ub97c \ub354\ud558\uace0, \uac70\uae30\ub2e4\uac00 3\uc744 \ub354\ud558\uace0, \ub610 4\ub97c \ub354\ud55c \uac12\uc744 \ub3cc\ub824\uc90d\ub2c8\ub2e4.<br \/>\n\ud55c \ub9c8\ub514\ub85c \uc804\ubd80 \ub2e4 \ub354\ud558\ub77c\ub294 \uac81\ub2c8\ub2e4.<\/p>\n<p>Step 1: Representing Records<\/p>\n<p>Using Lists<\/p>\n<pre>\n&gt;&gt;&gt; bob = ['Bob Smith', 42, 30000, 'software']\n&gt;&gt;&gt; sue = ['Sue Jones', 45, 40000, 'hardware']\n\n&gt;&gt;&gt; bob[0], sue[2] # fetch name, pay\n('Bob Smith', 40000)\n\n&gt;&gt;&gt; bob[0].split()[-1] # what's bob's last name?\n'Smith'\n&gt;&gt;&gt; sue[2] *= 1.25 # give sue a 25% raise\n&gt;&gt;&gt; sue\n['Sue Jones', 45, 50000.0, 'hardware']\n\n<\/pre>\n<pre>\nA database list\n\n&gt;&gt;&gt; people = [bob, sue] # reference in list of lists\n&gt;&gt;&gt; for person in people:\nprint(person)\n['Bob Smith', 42, 30000, 'software']\n['Sue Jones', 45, 50000.0, 'hardware']\n\n&gt;&gt;&gt; people[1][0]\n'Sue Jones'\n&gt;&gt;&gt; for person in people:\nprint(person[0].split()[-1]) # print last names\nperson[2] *= 1.20 # give each a 20% raise\nSmith\nJones\n&gt;&gt;&gt; for person in people: print(person[2]) # check new pay\n36000.0\n60000.0\n\n&gt;&gt;&gt; pays = [person[2] for person in people] # collect all pay\n&gt;&gt;&gt; pays\n[36000.0, 60000.0]\n\nlambda : the eleventh letter of the Greek alphabet. See table at GREEK \n\n&gt;&gt;&gt; pays = map((lambda x: x[2]), people) # ditto (map is a generator in 3.X)\n&gt;&gt;&gt; list(pays)\n[36000.0, 60000.0]\n&gt;&gt;&gt; sum(person[2] for person in people) # generator expression, sum built-in\n96000.0\n\n&gt;&gt;&gt; people.append(['Tom', 50, 0, None])\n&gt;&gt;&gt; len(people)\n3\n&gt;&gt;&gt; people[-1][0]\n'Tom'\n\n<\/pre>\n<pre>\n\nField labels\n\n&gt;&gt;&gt; NAME, AGE, PAY = range(3) # 0, 1, and 2\n&gt;&gt;&gt; bob = ['Bob Smith', 42, 10000]\n&gt;&gt;&gt; bob[NAME]\n'Bob Smith'\n&gt;&gt;&gt; PAY, bob[PAY]\n(2, 10000)\n\n\n&gt;&gt;&gt; bob = [['name', 'Bob Smith'], ['age', 42], ['pay', 10000]]\n&gt;&gt;&gt; sue = [['name', 'Sue Jones'], ['age', 45], ['pay', 20000]]\n&gt;&gt;&gt; people = [bob, sue]\n\n&gt;&gt;&gt; for person in people:\nprint(person[0][1], person[2][1]) # name, pay\nStep 1: Representing Records | 7\nBob Smith 10000\nSue Jones 20000\n&gt;&gt;&gt; [person[0][1] for person in people] # collect names\n['Bob Smith', 'Sue Jones']\n&gt;&gt;&gt; for person in people:\nprint(person[0][1].split()[-1]) # get last names\nperson[2][1] *= 1.10 # give a 10% raise\nSmith\nJones\n&gt;&gt;&gt; for person in people: print(person[2])\n['pay', 11000.0]\n['pay', 22000.0]\n\n\n\n&gt;&gt;&gt; for person in people:\nfor (name, value) in person:\nif name == 'name': print(value) # find a specific field\nBob Smith\nSue Jones\n\n\n&gt;&gt;&gt; def field(record, label):\nfor (fname, fvalue) in record:\nif fname == label: # find any field by name\nreturn fvalue\n&gt;&gt;&gt; field(bob, 'name')\n'Bob Smith'\n&gt;&gt;&gt; field(sue, 'pay')\n22000.0\n&gt;&gt;&gt; for rec in people:\nprint(field(rec, 'age')) # print all ages\n42\n45\n\n\n\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Using Dictionaries<\/p>\n<pre>\n&gt;&gt;&gt; bob = {'name': 'Bob Smith', 'age': 42, 'pay': 30000, 'job': 'dev'} \n&gt;&gt;&gt; sue = {'name': 'Sue Jones', 'age': 45, 'pay': 40000, 'job': 'hdw'}\n\n&gt;&gt;&gt; bob = {'name': 'Bob Smith', 'age': 42, 'pay': 30000, 'job': 'dev'} \n&gt;&gt;&gt; sue = {'name': 'Sue Jones', 'age': 45, 'pay': 40000, 'job': 'hdw'}\n\n\nOther ways to make dictionaries\n\n&gt;&gt;&gt; bob = dict(name='Bob Smith', age=42, pay=30000, job='dev') \n&gt;&gt;&gt; sue = dict(name='Sue Jones', age=45, pay=40000, job='hdw') \n&gt;&gt;&gt; bob {'pay': 30000, 'job': 'dev', 'age': 42, 'name': 'Bob Smith'} \n&gt;&gt;&gt; sue {'pay': 40000, 'job': 'hdw', 'age': 45, 'name': 'Sue Jones'}\n\n\n&gt;&gt;&gt; sue = {} &gt;&gt;&gt; sue['name'] = 'Sue Jones' \n&gt;&gt;&gt; sue['age']  = 45\n&gt;&gt;&gt; sue['pay']  = 40000 \n&gt;&gt;&gt; sue['job']  = 'hdw' \n&gt;&gt;&gt; sue {'job': 'hdw', 'pay': 40000, 'age': 45, 'name': 'Sue Jones'}\n\n\n by zipping together name\/value lists: \n&gt;&gt;&gt; names  = ['name', 'age', 'pay', 'job'] \n&gt;&gt;&gt; values = ['Sue Jones', 45, 40000, 'hdw'] \n&gt;&gt;&gt; list(zip(names, values)) [('name', 'Sue Jones'), ('age', 45), ('pay', 40000), ('job', 'hdw')]\n&gt;&gt;&gt; sue = dict(zip(names, values)) \n&gt;&gt;&gt; sue {'job': 'hdw', 'pay': 40000, 'age': 45, 'name': 'Sue Jones'}\n\n\n\n by zipping together name\/value lists: \n&gt;&gt;&gt; names  = ['name', 'age', 'pay', 'job'] \n&gt;&gt;&gt; values = ['Sue Jones', 45, 40000, 'hdw'] \n&gt;&gt;&gt; list(zip(names, values)) \n[('name', 'Sue Jones'), ('age', 45), ('pay', 40000), ('job', 'hdw')] \n&gt;&gt;&gt; sue = dict(zip(names, values)) \n&gt;&gt;&gt; sue \n{'job': 'hdw', 'pay': 40000, 'age': 45, 'name': 'Sue Jones'}\n\n&gt;&gt;&gt; fields = ('name', 'age', 'job', 'pay')\n&gt;&gt;&gt; record = dict.fromkeys(fields, '?')\n&gt;&gt;&gt; record\n{'job': '?', 'pay': '?', 'age': '?', 'name': '?'}\n<\/pre>\n<p>Lists of dictionaries<\/p>\n<pre>\n\n&gt;&gt;&gt; bob\n{'pay': 30000, 'job': 'dev', 'age': 42, 'name': 'Bob Smith'}\n&gt;&gt;&gt; sue\n{'job': 'hdw', 'pay': 40000, 'age': 45, 'name': 'Sue Jones'}\n&gt;&gt;&gt; people = [bob, sue] # reference in a list\n&gt;&gt;&gt; for person in people:\nprint(person['name'], person['pay'], sep=', ')    # all name, pay\nBob Smith, 30000\nSue Jones, 40000\n&gt;&gt;&gt; for person in people:\n   if person['name'] == 'Sue Jones':     # fetch sue's pay\n      print(person['pay'])\n40000\n\n\n&gt;&gt;&gt; names = [person['name'] for person in people] # collect names\n&gt;&gt;&gt; names\n['Bob Smith', 'Sue Jones']\n&gt;&gt;&gt; list(map((lambda x: x['name']), people)) # ditto, generate\n['Bob Smith', 'Sue Jones']\n&gt;&gt;&gt; sum(person['pay'] for person in people) # sum all pay\n70000\n\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\ub78c\ub2e4 \ud615\uc2dd\uc740 \uc778\uacf5\uc9c0\ub2a5 \ubd84\uc57c\ub098 AutoCAD\ub77c\ub294 \uc124\uacc4 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc4f0\uc774\ub294 Lisp \uc5b8\uc5b4\uc5d0\uc11c \ubb3c\ub824\ubc1b\uc558\ub2e4\uace0 \ud558\ub294\ub370\uc694, \ud568\uc218\ub97c \ub531 \ud55c \uc904\ub9cc\uc73c\ub85c \ub9cc\ub4e4\uac8c \ud574\uc8fc\ub294 \uae30\ub625\ucc2c \ubc29\ubc95\uc785\ub2c8\ub2e4. lambda \uc778\uc790 : \ud45c\ud604\uc2dd \ub2e4\uc74c\uc740 \ub450 \uc218\ub97c \ub354\ud558\ub294 \ud568\uc218\uc785\ub2c8\ub2e4. &gt;&gt;&gt;&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/209"}],"collection":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=209"}],"version-history":[{"count":0,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/209\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}