рд╣рдо рд╕реБрдВрджрд░ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдкрд╛рдпрдерди рд▓рд┐рдЦрддреЗ рд╣реИрдВ


рдХрднреА-рдХрднреА рд╡реЗрдм рдкрд░ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рд╣реА, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ "рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ" рдХреЛ рдЦреЛрдЬрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╕реНрддреГрдд рдХреЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЪреАрдЬ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдФрд░ рдкреНрд░рд▓реЗрдЦрди) рд╡рд┐рд╡рд░рдг рдХрд╛рдлреА рдХрдард┐рди рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ Google рдЦреЛрдЬ рдореБрдЭ рдкрд░ рдореБрд╕реНрдХреБрд░рд╛рдИ, рдФрд░ рдореИрдВ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдкрд╛рдпрдерди "рдкреИрдЯрд░реНрди" рдореЗрдВ рдЖрдпрд╛, рдЬреЛ рдХрд┐ рдХреЛрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд░реЗрдордВрдб рд╣реЗрдЯрд┐рдВрдЧрд░ рдереЗред

рдиреЛрдЯ : рд╕рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рджреА рдЧрдИ рд╣реИрдВ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, "рд╕рдмрд╕реЗ рдЦрд░рд╛рдм" рд╡рд┐рдХрд▓реНрдк рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдг 2.7 рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рд╕рдВрд╕реНрдХрд░рдг 3.3 рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ "рдкреИрдЯрд░реНрди" рдХреЗ рдиреЛрдЯреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рд╕рдВрдЦреНрдпрд╛ рдХреА рдПрдХ рд╕рд░рдгреА

рдмреБрд░рд╛ : рдХрднреА-рдХрднреА рд╡реЗ рдРрд╕рд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
for i in [0, 1, 2, 3, 4, 5]: print i**2 

рдЕрдЪреНрдЫрд╛ : рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛, рдПрдХ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рдеред рд▓реЗрдХрд┐рди 32-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдПрдХ рдорд┐рд▓рд┐рдпрди рдирдВрдмрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА ~ 32 рдПрдордмреА рдореЗрдореЛрд░реА рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрдЧреАред
 for i in range(6): print i**2 

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛: рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдкред рджреВрд╕рд░реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, xrange рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рд╕рдВрдкреВрд░реНрдг рд╕рд░рдгреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
 for i in xrange(6): print i**2 

рдиреЛрдЯ : рдкрд╛рдпрдерди 3.3 рдореЗрдВ, xrange рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╣реИ рдФрд░ рдмрд╕ range рдХрд╣рд▓рд╛рддрд╛ range ред

рд╕реВрдЪреА рдЪрдХреНрд░

рдЦрд░рд╛рдм : рдЕрдХреНрд╕рд░ рдкреВрд░реНрд╡ рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
 colors = ['red', 'green', 'blue', 'yellow'] for i in range(len(colors)): print colors[i] 

рдЕрдЪреНрдЫрд╛ : рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдкред
 colors = ['red', 'green', 'blue', 'yellow'] for color in colors: print color 

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕реВрдЪреА рдХреЗ рд╕рд╛рдордиреЗ рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдЦрд╝рд░рд╛рдм : рдлрд┐рд░ рд╕реЗ, C рд╕реЗ рдкрд╛рд╕ рд╣реЛрдиреЗ рдкрд░ рдЦреБрдж рдХреЛ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ
 colors = ['red', 'green', 'blue', 'yellow'] for i in range(len(colors)-1, -1, -1): print colors[i] 

рдЕрдЪреНрдЫрд╛ : рд▓реЗрдХрд┐рди рдЕрдЬрдЧрд░ рдореЗрдВ рд╡реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 colors = ['red', 'green', 'blue', 'yellow'] for color in reversed(colors): print color 


рд╕реВрдЪрдХрд╛рдВрдХ рд╕реВрдЪреА рдЪрдХреНрд░

рдКрдкрд░ рдЬреИрд╕рд╛ рдмреБрд░рд╛ ред
 colors = ['red', 'green', 'blue', 'yellow'] for i in range(len(colors)): print i, '-->', colors[i] 

рдЕрдЪреНрдЫрд╛ : рдПрдХ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд╡рд┐рдХрд▓реНрдк:
 colors = ['red', 'green', 'blue', 'yellow'] for i, color in enumerate(colors): print i, '-->', color 


рдбрдмрд▓ рд╕реВрдЪреА рдЪрдХреНрд░

рдКрдкрд░ рдЬреИрд╕рд╛ рдмреБрд░рд╛ ред
 names = ['raymond', 'rachel', 'matthew'] colors = ['red', 'green', 'blue', 'yellow'] n = min(len(names), len(colors)) for i in range(n): print names[i], '-->', colors[i] 

рдЕрдЪреНрдЫрд╛ : рджреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рд╣рдо рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ zip рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
 names = ['raymond', 'rachel', 'matthew'] colors = ['red', 'green', 'blue', 'yellow'] for name, color in zip(names, colors): print name, '-->', color 

рдЙрддреНрдХреГрд╖реНрдЯ : zip рд╡рд┐рдкрд░реАрдд, izip рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореЗрдореЛрд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорджрдж рдХрд░рддрд╛ рд╣реИред
 names = ['raymond', 'rachel', 'matthew'] colors = ['red', 'green', 'blue', 'yellow'] for name, color in izip(names, colors): print name, '-->', color 

рдиреЛрдЯ : рдкрд╛рдпрдерди 3.3 рдореЗрдВ, izip рдХрд░реНрдиреЗрд▓ рдХреЛ izip рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрд╕ zip рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА

рдЦрд░рд╛рдм : рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
 colors = ['red', 'green', 'blue', 'yellow'] def compare_length(c1, c2): if len(c1) < len(c2): return -1 if len(c1) > len(c2): return 1 return 0 print sorted(colors, cmp=compare_length) 


рдЕрдЪреНрдЫрд╛ : рдХреБрдВрдЬреА рдЫрдБрдЯрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдмрд╣реБрдд рдХрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
 colors = ['red', 'green', 'blue', 'yellow'] print sorted(colors, key=len) 

рдиреЛрдЯ : cmp рд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рдпрдерди 3.x рдХрд░реНрдиреЗрд▓ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╢рдмреНрджрдХреЛрд╢ рдХреБрдВрдЬреА рдЪрдХреНрд░

рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реВрдк рдХреЗ рд╕рд╛рде, рд╢рдмреНрджрдХреЛрд╢ рдХреА рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
 for k in d: print k 

рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рд▓реВрдк рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг: R рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛):
 for k in d.keys(): if k.startswith('R'): del d[k] 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, d.keys() рд╢рдмреНрджрдХреЛрд╢ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдореВрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореБрдЦреНрдп рдЪрдХреНрд░ рдФрд░ рд╢рдмреНрджрдХреЛрд╢ рдореВрд▓реНрдп рдЪрдХреНрд░

рдЦрд░рд╛рдм : рдЪрд╛рдмрд┐рдпрд╛рдБ рджреНрд╡рд╛рд░рд╛ рд▓реВрдк рдФрд░ рдЕрдВрддрд┐рдо рд╕реЗ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпред рдзреАрдорд╛ рддрд░реАрдХрд╛:
 for k in d: print k, '-->', d[k] 

рдЕрдЪреНрдЫрд╛ : рдпрд╣ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝ рд╣реИ
 for k, v in d.items(): print k, '-->', v 

рдЙрддреНрдХреГрд╖реНрдЯ : рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ:
 for k, v in d.iteritems(): print k, '-->', v 


рджреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛

рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╡рд┐рдзрд┐, рд╢рдмреНрджрдХреЛрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЯрдкрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
 names = ['raymond', 'rachel', 'matthew'] colors = ['red', 'green', 'blue'] d = dict(izip(names, colors)) # d    : # {'matthew': 'blue', 'rachel': 'green', 'raymond': 'red'} 


рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдЖрдЗрдЯрдо рдХреА рдЧрд┐рдирддреА

рдЦрд░рд╛рдм : рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛:
 colors = ['red', 'green', 'red', 'blue', 'green', 'red'] d = {} for color in colors: if color not in d: d[color] = 0 d[color] += 1 #{'blue': 1, 'green': 2, 'red': 3} 

рдЕрдЪреНрдЫрд╛ : get() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
 colors = ['red', 'green', 'red', 'blue', 'green', 'red'] d = {} for color in colors: d[color] = d.get(color, 0) + 1 

рдорд╣рд╛рди : рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рддрд░реАрдХрд╛ рд╣реИ defaultdict() рдХрд╛ рдЙрдкрдпреЛрдЧ defaultdict() ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ред
 d = defaultdict(int) for color in colors: d[color] += 1 


рд╕рдореВрд╣реАрдХрд░рдг рд╕реВрдЪреА рдЖрдЗрдЯрдо

рдЦрд░рд╛рдм : рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдорд╛рдирджрдВрдб (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ) рджреНрд╡рд╛рд░рд╛ рдЖрдЗрдЯрдо рд╕реВрдЪреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЕрдХреНрд╕рд░ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
 names = ['raymond', 'rachel', 'matthew', 'roger', 'betty', 'melissa', 'judith', 'charlie'] d = {} for name in names: key = len(name) if key not in d: d[key] = [] d[key].append(name) {5: ['roger', 'betty'], 6: ['rachel', 'judith'], 7: ['raymond', 'matthew', 'melissa', 'charlie']} 

рдЕрдЪреНрдЫрд╛ : рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИ:
 d = defaultdict(list) for name in names: key = len(name) d[key].append(name) 


рдкрд░рд┐рдгрд╛рдо

рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпреЗ рддреБрдЪреНрдЫ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдЙрдирдХреЗ рд▓реЗрдЦрдХ рд░реЗрдордВрдб рд╣реЗрдЯрд┐рдВрдЧрд░ ( @raymondh ), рдкрд╛рдпрдерди рдХреЛрд░ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВред

UPD : PyCon 2013 рдХреА рд╡реАрдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдП рдЧрдП рдереЗ: http://youtu.be/OSGv2VnC0go (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ), рдЕрднреА рднреА рдмрд╣реБрдд рд╕рд╛рд░реА рд░реЛрдЪрдХ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрдЦ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реНрдкреАрдХрд░ рдХрд╛ рд╣рд╛рд╕реНрдп рдФрд░ рдХрд░рд┐рд╢реНрдорд╛ рднреАред

Source: https://habr.com/ru/post/In204476/


All Articles