Labels

Saturday, February 6, 2010

Жагсаалтад буулгалт хийх

Файтон хэлний онцлог нь жагсаалттай маш сайн хоршин ажилладаг. Жагсаалтын элемент бүрт ямар нэгэн функц ажиллуулж гарсан жагсаалтыг өөр жагсаалтруу оноон буулгаж болдог.

За жишээгээ харцгаая

>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]
[2, 18, 16, 8]
>>> li
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li]
>>> li
[2, 18, 16, 8]

юу болоод өнгөрвөө. За li гэсэн дөрвөн элэмент бүхий жагсаалт байгаан байжээ. Хоёр дахь мөр нь энэ жагсаалтын элементи бүрийг давтаад өөрөөр хэлбэл дарааллын дагуу сугалж байгаад 2-оор үржиж байна. li жагсаалтад ямар нэгэн өөрчлөлт ороогүй тул анхныхаараал байгаа гэдгийг 4-р мөрөнд илэрхийлж байна. 5-р мөрөн li өөрөө өөртөө буулгалт хийж байнаа. Өмнөх шиг жагсаалтын элемэнт болгоныг 2-оор үржиж li-д буулгаж байна. Үр дүнг 6,7-р мөрөн хэвлэж харуулж байгаан байна. Тэхээр
for iter in list гэх нь list доторхи бүх элементүүдийг давтаж байгаан байна. Давталтын нэг цикл бүрд iter-т list-ийн нэг утга харгалзахнээ. Нэгэнтээ жагсаалтаас сугалаад гаргаад ирсэн элемэнтийг яах эсэх нь таны хэрэг үржнүү нэмнүү хуваануу дураалаал бол :)

Dictionary төрөлд байгаа утгуудыг бүгдийг сугалаад Tuple байдлаар гаргаж авбал дараах байдалтай хийгдэнэ. Эдгээр төрлүүдийг өмнөх постод сайхан тайлбарласан байгаа!
["%s=%s" % (k, v) for k, v in params.items()]

dictionary төрөлд хэрэглэгддэг методуудынх нь ялгааг харцгаая

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params.keys()
['server', 'uid', 'database', 'pwd']
>>> params.values()
['mpilgrim', 'sa', 'master', 'secret']
>>> params.items()
[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]

Тэхээр items() метод нь хос хосоор гаргаж ирж байгаа биз!

No comments: