Для меня самый pythonic * путь следующий: в значительной степени делает то же самое , но использует оператор +
для конкатенации отдельных символов в каждой строке:
res = "".join(i + j for i, j in zip(u, l))
print(res)
# 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
Это также быстрее, чем использование двух вызовов join()
:
In [5]: l1 = 'A' * 1000000; l2 = 'a' * 1000000
In [6]: %timeit "".join("".join(item) for item in zip(l1, l2))
1 loops, best of 3: 442 ms per loop
In [7]: %timeit "".join(i + j for i, j in zip(l1, l2))
1 loops, best of 3: 360 ms per loop
Существуют более быстрые подходы, но они часто обфускают код.
Примечание: если два входа строки не одинаковой длины, а более длинная будет усекаться, поскольку zip
останавливает итерацию в конце более короткой строки. В этом случае вместо zip
следует использовать zip_longest
( izip_longest
в Python 2) из модуля itertools
в убедитесь, что обе строки полностью исчерпаны.
* Чтобы взять цитату из , Zen of Python : число читаемости. Pythonic = читаемость для меня; i + j
просто визуально анализируется легче, по крайней мере для моих глаз.
Необходимо получить контекст устройства окна ( GetWindowDC()
) и изображение копии ( BitBlt()
) от него. В зависимости от чего еще Вы знаете о приложении, Вы будете использовать различные методы для нахождения который дескриптор окна передать в GetWindowDC()
.
На документация функции keybd_event это указывает, что можно использовать его, чтобы сделать снимок экрана и сохранить его к буферу обмена. Например:
keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0);
В моей версии (Справка Visual Studio 2005 года, установленная на моем компьютере), это указывает, что можно сделать снимок экрана целого рабочего стола путем установки второго параметра на 0, или снимок экрана просто текущего приложения путем установки его на 1.
Вынимание его из буфера буфера обмена оставляют как осуществление для читателя.
Однако я думал бы тщательно прежде, чем сделать это, поскольку это покроет дерном любые данные изображения, уже присутствовал в буфере обмена.