С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 13.03.2023
Сообщений: 5
1

Типы данных в Python

13.03.2023, 08:42. Показов 773. Ответов 5

Author24 — интернет-сервис помощи студентам
Хочу подробно работаться с типами данных в Python. Я написал граф со всей информацией, которую знаю. Можете сказать где я вообще не прав или что важное забыл указать?

Типы данных в Python

Типы данных в Python

Типы данных в Python

Типы данных в Python
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2023, 08:42
Ответы с готовыми решениями:

Задача на строковые типы данных. Разработать алгоритм и программу на Python, используя строки и операции над строками
Описать функцию работы со строкой символов, которая найдет, сколько раз входит в строку некоторый...

Ввод и вывод данных. Типы данных. Операции с числовыми типами данных
В работе необходимо вычислять значение (я) функции y = f(x). Варианты заданий отличаются видом...

Типы данных в Python
а есть ли в Python тип данных равный 8 байтам, целое и положительное?

Встроенные типы в python
Всем доброго времени суток! У меня вопросы возможно слишком занудные, но для меня очень важные:...

5
Автоматизируй это!
Эксперт Python
7211 / 4705 / 1224
Регистрация: 30.03.2015
Сообщений: 13,409
Записей в блоге: 29
13.03.2023, 09:00 2
WATUNEED, ты книжку от 2010 года чтоли брал?)) инт в питоне, в современном питоне не ограничен, если не считать оперативной памяти компьютера, может принимать любые значения. САмое нижнее утверждение про инт вообще не понял

Нан - это не "неопределенное значение переменной", это вполне конкретное значение, не надо путать с undefined из других языков.

Добавлено через 2 минуты
рейндж не аналог массива чисел, он ленивый, память не занята, в отличие от массива.
У тапла нет операции вставки

Добавлено через 38 секунд
не сказал бы что принято хранить в списке одинаковые значения а в таплах разные

Добавлено через 3 минуты
расскажи кто тебе сказал что в множестве скорость удаления О(н), сет сортируетс и при вставе переписывает все содержимое?

Добавлено через 3 минуты
почему считаешь что словарь занимает значительно больше памяти чем сет?
1
0 / 0 / 0
Регистрация: 13.03.2023
Сообщений: 5
13.03.2023, 09:29  [ТС] 3
Про None, я имел введу, что это пустое значение.

Range конечно не массив, я понимаю Имел введу, что у него может быть только один тип данных, как в массиве. Про то что он ленивый не знал, спасибо.

Про set. Так как set это множество в математическом смысле, в нем всегда значения расположены по возрастанию и уникальные. Я это проверял, оно так и работает:
Python
1
2
3
l = list(range(1, 10))[::-1] + list(range(1, 10))[::-1]
print(l)
print(set(l))
Результат:
Python
1
2
[9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 8, 7, 6, 5, 4, 3, 2, 1]
{1, 2, 3, 4, 5, 6, 7, 8, 9}
Из-за этого каждая вставка в сет занимает время сортировки и проверки на уникальность каждого элемента -> О(n)

Про размер словарей. При небольшом кол-ве элементов словарь действительно занимает меньше памяти, но когда их становится очень много, словарь становится тяжелее. Тесты:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from sys import getsizeof
 
 
ds = dict()
ss = set()
db = dict()
sb = set()
 
for i in range(10):
    ds[i] = i
    ss.add(i)
 
for i in range(10000000):
    db[i] = i
    sb.add(i)
 
print(f'small dict: {getsizeof(ds)}')
print(f'small set: {getsizeof(ss)}')
print(f'large dict: {getsizeof(db)}')
print(f'large set: {getsizeof(sb)}')
Результат:
Python
1
2
3
4
small dict: 352
small set: 728
large dict: 335544400
large set: 268435672
0
512 / 337 / 145
Регистрация: 16.02.2021
Сообщений: 619
13.03.2023, 10:12 4
WATUNEED, файлы,сокеты - типы данных

Добавлено через 38 минут
Дополнительно
В python всё является объектами - и строки, и списки, и словари, и всё остальное. Программист может написать свой тип данных (класс), определить в нём свои методы.
0
Автоматизируй это!
Эксперт Python
7211 / 4705 / 1224
Регистрация: 30.03.2015
Сообщений: 13,409
Записей в блоге: 29
13.03.2023, 11:37 5
Цитата Сообщение от WATUNEED Посмотреть сообщение
Так как set это множество в математическом смысле, в нем всегда значения расположены по возрастанию и уникальные.
ты в книге это читал или сам придумал? Проверь ка это не на числах, а на строках, таплах и классах(у которых не реализована сортировка)

Python
1
2
3
4
>>> set('hello')
{'e', 'l', 'o', 'h'}
>>> set('abcdefghijklmnopqrstuvwxyz')
{'j', 'i', 'l', 'm', 'n', 'e', 'r', 'x', 'z', 'g', 'y', 'f', 'p', 'd', 'h', 'b', 's', 'v', 'w', 'u', 'q', 'a', 't', 'k', 'c', 'o'}
записывай -множество это неупорядоченная стуктура данных, ничего не сортируется и не затирается при вставке, во многих языках реализован поверх словаря


Цитата Сообщение от WATUNEED Посмотреть сообщение
Про размер словарей.
во-первых словарь содержит пару значений, что по идее больше чем такое же количество одинарных значений. во-вторых, для определения размеров сис.гетсайзоф не подходит, нужны специальные библиотеки, умеющие считать вложенные структуры
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> from pympler import asizeof
>>> a_dict = {a:a for a in range(10)}
>>> asizeof.asizeof(a_dict)
664
>>> a_set = set(range(10))
>>> asizeof.asizeof(a_set)
1040
>>> a_dict = {a:a for a in range(1000_000)}
>>> asizeof.asizeof(a_dict)
73943120
>>> a_set = set(range(1000_000))
>>> asizeof.asizeof(a_set)
65554640
>>> 73943120 - 65554640
8388480
обрати внимание что разница не в 2 раза, что можно было ожидать, ибо в словаре пары значений, а 15%, так что значительно ли больше словарь чем сет?

Добавлено через 1 минуту
Цитата Сообщение от WATUNEED Посмотреть сообщение
Из-за этого каждая вставка в сет занимает время сортировки и проверки на уникальность каждого элемента -> О(n)
0
0 / 0 / 0
Регистрация: 13.03.2023
Сообщений: 5
13.03.2023, 13:16  [ТС] 6
С этим понял спасибо.

Вопрос по поводу memoryview. Из документации он создаёт ссылку на объект, поддерживающий протокол буферизации. Главный плюс - не создаётся копия значения. Но ведь в python значения и так ссылочные
0
13.03.2023, 13:16
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2023, 13:16
Помогаю со студенческими работами здесь

Предопределенные типы переменных. Простые типы данных. Пользовательские типы данных
Лабораторная работа №6. Тема: Предопределенные типы переменных. Простые типы данных....

Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си?
Добрый вечер! Был бы очень признателен, если бы Вы помогли бы мне понять нижеследующие вопросы:...

Существуют ли типы данных меньше 1 байт и больше 8ми? Как создаются типы данных?
Также интересует вопрос на каких языках создаются типы данных, хотелось бы создать свои? Также...

Проанализируйте базу данных данных и определите типы данных, которые использованы для создания записей

Какой формат базы данных DSN Access (атрибуты и типы данных)?
В настройках IIS можно выбирать формат журнала, один из форматов - это DSN Access, то есть события...

Типы данных: чем отличается тип данных int от float?
Всем привет! Помогите пожалуйста, чем отличается тип данных int от float?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Test
mik-a-el 07.01.2025
Test
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru