Рубрики
Без рубрики

Использовать корпус для Python Cuple

Большинство программистов Python являются виновными (Me включены) всегда используя список, даже не рассматривая кортеж … Помечено Python, программирование, учебник, кортежи.

Большинство программистов Python являются виновными (Me включены) всегда используя список, даже не рассматривая кортеж вообще. Конечно, для некоторых случаев использования кортеж должен быть лучше правильно? Продолжайте читать для одного такого случая.

Tupple похож на список, но неизменно, поэтому у него меньше встроенных методов. Тепы быстрее, чем списки, но оно заметно только тогда, когда размер кортежа значительно велик. Для переподачи на кортежи, проверьте это блог

Общее правило для использования кортежа только тогда, когда данные будут или не должны меняться.

# Create Tuple with two elements
tup = (1, [2])

# Re-assign first element
tup[0] = 3

Это не значит, что вы действительно не можете изменить кортеж. Если основной элемент кортежного элемента вызывается, то мы можем изменить его. Это может привести к непреднамеренным побочным эффектам. Например, детский/унаследованный класс может изменить элемент кортежного элемента, инициализированного родительским классом.

# Add element to existing List element inside Tuple
tup[1].append(3)

print(tup)

Лично я больше в глубоком обучении и должен иметь дело с файлами изображений. Файлы изображения имеют много популярных форматов, таких как JPG, PNG и SVG и т. Д. У нас часто есть ситуация, когда мы должны найти все файлы определенных типов из папки. Есть много способов идти об этом. Мы рассмотрим несколько вариантов.

Вариант 1: Использование списка

Фильтрация на основе типа расширения выполняется с помощью Эндонсвит метод. Поскольку метод Endswith не принимает список, мы связываемся через все элементы расширения. Код выглядит читаемый и занимает около 2 микросекунда Что неплохо, но для каждого типа расширения мы должны проходить через все файлы еще раз. У меня есть подозрение, что мы можем сделать намного лучше.

# List of files in the folder
all_files = ['cat.jpg', 'dog.png', 'report.docx', 'sales.csv']

# List of image file extensions
img_exts_lst = ['jpg','png']

# Filter only image files using List
img_files = [file for file in all_files for ext in img_exts_lst if file.endswith(ext)]

print(img_files) # ['cat.jpg', 'dog.png']

Вариант 2: Использование кортежа

Почти похожий код Но мы можем пройти весь кортеж в качестве параметра к Эндонсвит метод. Это удаляет дополнительную петлю и делает код даже короче Отказ Код теперь работает о 2 раза быстрее Отказ Чтобы запустить свои собственные эксперименты, используйте Это ноутбук в качестве базы.

# List of files in the folder
all_files = ['cat.jpg', 'dog.png', 'report.docx', 'sales.csv']

# Tuple of image file extensions
img_exts_tup = ('jpg','png')

# Filter only image files using Tuple
img_files = [file for file in all_files if file.endswith(img_exts_tup)]

print(img_files) # ['cat.jpg', 'dog.png']

Некоторые методы, такие как Startswith и Эндонсвит Примите CUBLE в качестве параметра, если данные не изменяются, то лучше использовать кортеж или конвертировать список, чтобы кортеж до передачи данных к способу. Кортежи делают код выглядеть больше Элегантный и бежать быстрее Отказ Кроме того, не забывайте о ожесточить Отказ

Надеюсь, этот пост поможет вам быть более открытым для кортежей. Если у вас есть какие-либо вопросы или мысли, не стесняйтесь обращаться с комментариями здесь или Twitter Отказ

Оригинал: “https://dev.to/6aravind/use-case-for-python-tuple-5d7f”