Python — один из наиболее популярных языков программирования, превзошедший по популярности по индексу TIOBE язык PHP.
Синтаксис Python может показаться странным по началу, особенно для разработчиков на Java. Некоторые фрагменты кода используются довольно часто, но для новичков их воспроизведение может оказаться не под силу. Такие фрагменты называют «идиомами». Их прочтение может оказаться зачастую полезным для изучения нового языка программирования. В этой статье мы познакомим вас с некоторыми из наиболее популярными фрагментами кода.



Фильтруем список
# убираем пустые строки в списке
list = [x for x in list if x.strip() != '']
# или
list = filter(lambda x: len(x) > 0, list)

Читаем файл строчкой за строчкой
with open("/путь/к/файлу") as f:
    for line in f:
        print(line)

Ищем совпадения с помощью регулярного выражения
sentence = "this is a test, not testing."
it = re.finditer('\\btest\\b', sentence)
for match in it:
    print("match position: " + str(match.start()) + "-" +   str(match.end()))

Поиск с помощью регулярного выражения
m = re.search('\d+-\d+', line) # ищем строки, совпадающие по шаблону "число-число"
if m:
    current = m.group(0)

Кидаем запрос в базу данных
db = MySQLdb.connect("localhost", "username", "password", "dbname")
cursor = db.cursor()
sql = "select Column1, Column2 from Table1"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
    print(row[0] + row[1])
db.close()

Соединяем элементы списка воедино с помощью заданного разделителя
theList = ["a", "b", "c"]
joinedString = ",".join(theList)

Убрать из списка элементы-дупликаты
targetList = list(set(targetList))

Прикрепить один список к другому
anotherList.extend(aList)

Итерировать словарь
for k, v in aDict.iteritems():
    print(k + v)

Проверить присутствует ли какой-нибудь элемент из списка строк в заданной строке
if any(x in targetString for x in aList):
    print("true")

Источник



-------------------------------------------------------------------------

Десять трюков в Python для новичков

1. Реверс строки

»> a = "codementor"
»> print "Reverse is",a[::-1]
Reverse is rotnemedoc

2. Транспонирование матрицы
»> mat = [­[1, 2, 3], [4, 5, 6]]
»> zip(*mat)
[(1, 4), (2, 5), (3, 6)]

3. Сохранить значения списка в переменные
»> a = [1, 2, 3]
»> x, y, z = a
»> x
1
»> y
2
»> z
3

4. Создать строку из всех элементов списка
»> print " ".join(a)
Code mentor Python Developer

5. Объединить переменные нескольких списков
Например:
list1 = ['a', 'b', 'c', 'd']
list2 = ['p', 'q', 'r', 's']
Результат:
ap
bq
cr
ds

»> for x, y in zip(list1,list2):
... print x, y
...
a p
b q
c r
d s

6. Поменять местами две переменных одной строкой
»> a=7
»> b=5
»> b, a =a, b
»> a
5
»> b

7. Написать строку "codecodecodecode mentormentormentormentormentor" без использования циклов

»> print "code"*4+' '+"mentor"*5
codecodecodecode mentormentormentormentormentor

8. Преобразовать список из пар списков в один список

На входе:
a = [­[1, 2], [3, 4], [5, 6]]
На выходе:
[1, 2, 3, 4, 5, 6]

»> import itertools
»> list(itertools.chain.from_iterable(a))
[1, 2, 3, 4, 5, 6]

9. Проверить являются ли два слова анаграммами

def is_anagram(word1, word2):
..."""Checks whether the words are anagrams.
... word1: string
...word2: string
...returns: boolean
..."""

Решение:

from collections import Counter
def is_anagram(str1, str2):
...return Counter(str1) == Counter(str2)
»> is_anagram('abcd','dbca')
True
»> is_anagram('abcd','dbaa')
False

10. Преобразовать вводимые элементы строки в список
»> result = map(lambda x:int(x) ,raw_input().split())
1 2 3 4
»> result
[1, 2, 3, 4]

http://vk.com/wall-26227_5214

всяко разное (простое)

1. Перевернуть список

»> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
»> a[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

2. Вывести значения словаря в виде "ключ: значение"

»> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
»> for k, v in m.iteritems():
...print '{}: {}'.format(k, v)
...
a: 1
c: 3
b: 2
d: 4

3. Поменять "значения" и "ключи" словаря местами

»> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
»> m
{'d': 4, 'a': 1, 'b': 2, 'c': 3}
»> {v: k for k, v in m.items()}
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}

4. Как проще вывести все значения списка

i = 0
lst = [1,2,3]

Вместо:
for item in lst:
...print i, item
...i += 1

Можно использовать:
for i, item in enumerate(lst):
...print i, item

5. Пронумерованные кортежи

Нумерация кортежей с нуля:
» list(enumerate('abc'))
[(0, 'a'), (1, 'b'), (2, 'c')]

Произвольная нумерация:
»> list(enumerate('abc', 1))
[(1, 'a'), (2, 'b'), (3, 'c')]

http://vk.com/wall-26227_5230

http://theasder.github.io/python/2015/09/16/11-most-frequently-used-python-code-fragments.html

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 06:54 pm
Powered by Dreamwidth Studios