Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/массив в dictionary - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
массив в dictionary
megavlom Дата: Пятница, 14.09.2012, 13:46 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 1 ±
Замечаний: 0% ±

Здравствуйте. Заинтересовал вопрос - есть ли способы занести данные в dictionary без перебора массива (даже одномерного) ,выгрузка в массив значений и ключей есть,а вот заполнение ? Может кто нибудь пробовал разные способы, возможно с помощью какой нибудь функции.В инете сколько не искал - не нашел, только перебор.
 
Ответить
СообщениеЗдравствуйте. Заинтересовал вопрос - есть ли способы занести данные в dictionary без перебора массива (даже одномерного) ,выгрузка в массив значений и ключей есть,а вот заполнение ? Может кто нибудь пробовал разные способы, возможно с помощью какой нибудь функции.В инете сколько не искал - не нашел, только перебор.

Автор - megavlom
Дата добавления - 14.09.2012 в 13:46
Alex_ST Дата: Пятница, 14.09.2012, 14:02 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3211
Репутация: 609 ±
Замечаний: 0% ±

2003
У Dictionary нет метода, производящего загрузку в него из массива, поэтому Вы и не можете его найти.
Наверное, это потому, что у словаря всегда должна быть "нерушимая" пара "уникальный ключ<->значение". И поодиночке без нарушения этого его основополагающего принципа организовать ЗАГРУЗКУ в него нельзя.
Да и цикл-то по массиву с добавлением элементов в словарь - штука очень быстрая и не сложная по коду.
А, скажите, зачем это Вам нужно? Просто не представляю практического применения.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеУ Dictionary нет метода, производящего загрузку в него из массива, поэтому Вы и не можете его найти.
Наверное, это потому, что у словаря всегда должна быть "нерушимая" пара "уникальный ключ<->значение". И поодиночке без нарушения этого его основополагающего принципа организовать ЗАГРУЗКУ в него нельзя.
Да и цикл-то по массиву с добавлением элементов в словарь - штука очень быстрая и не сложная по коду.
А, скажите, зачем это Вам нужно? Просто не представляю практического применения.

Автор - Alex_ST
Дата добавления - 14.09.2012 в 14:02
nerv Дата: Пятница, 14.09.2012, 14:03 | Сообщение № 3
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Quote (megavlom)
есть ли способы занести данные в dictionary без перебора

нет


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Quote (megavlom)
есть ли способы занести данные в dictionary без перебора

нет

Автор - nerv
Дата добавления - 14.09.2012 в 14:03
megavlom Дата: Пятница, 14.09.2012, 16:42 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 1 ±
Замечаний: 0% ±

Спасибо,хотя надеялся..Для подсчета колва дублей. 1.Массив=15 2.Массив=130 Общее=145 Если Count меньше есть дубли.Ошибки отключить. Спасибо Вам.
 
Ответить
СообщениеСпасибо,хотя надеялся..Для подсчета колва дублей. 1.Массив=15 2.Массив=130 Общее=145 Если Count меньше есть дубли.Ошибки отключить. Спасибо Вам.

Автор - megavlom
Дата добавления - 14.09.2012 в 16:42
Hugo Дата: Пятница, 14.09.2012, 16:53 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3586
Репутация: 778 ±
Замечаний: 0% ±

365
Соседняя тема smile

http://www.excelworld.ru/forum/2-2371-1


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеСоседняя тема smile

http://www.excelworld.ru/forum/2-2371-1

Автор - Hugo
Дата добавления - 14.09.2012 в 16:53
megavlom Дата: Пятница, 14.09.2012, 17:16 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 1 ±
Замечаний: 0% ±

Таких операций более млн
 
Ответить
СообщениеТаких операций более млн

Автор - megavlom
Дата добавления - 14.09.2012 в 17:16
Hugo Дата: Пятница, 14.09.2012, 18:10 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3586
Репутация: 778 ±
Замечаний: 0% ±

365
Мода не справляется?
Ну можно перебором массива заносить в коллекцию, до первой ошибки.
Если повезёт - будет быстро. Если повезёт - можно обойтись перебором ячеек smile
Вам ведь только нужно понять, есть ли повторы?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеМода не справляется?
Ну можно перебором массива заносить в коллекцию, до первой ошибки.
Если повезёт - будет быстро. Если повезёт - можно обойтись перебором ячеек smile
Вам ведь только нужно понять, есть ли повторы?

Автор - Hugo
Дата добавления - 14.09.2012 в 18:10
megavlom Дата: Пятница, 14.09.2012, 18:36 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 1 ±
Замечаний: 0% ±

Замысел был за счет разницы определять кол-во.Спасибо Hugo, мы пошли другим путем.
 
Ответить
СообщениеЗамысел был за счет разницы определять кол-во.Спасибо Hugo, мы пошли другим путем.

Автор - megavlom
Дата добавления - 14.09.2012 в 18:36
Hugo Дата: Пятница, 14.09.2012, 20:18 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3586
Репутация: 778 ±
Замечаний: 0% ±

365
Ну если нужно количество - тогда конечно.
Думаю, с коллекцией может быть быстрее - заносим все перебором массивов в коллекцию, считаем эрроры.
А каким другим путём вы пошли ? smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНу если нужно количество - тогда конечно.
Думаю, с коллекцией может быть быстрее - заносим все перебором массивов в коллекцию, считаем эрроры.
А каким другим путём вы пошли ? smile

Автор - Hugo
Дата добавления - 14.09.2012 в 20:18
megavlom Дата: Пятница, 14.09.2012, 20:35 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 1 ±
Замечаний: 0% ±

Сделал другой алгоритм задачи. ВБА как конструктор,можно изголятся по разному.
 
Ответить
СообщениеСделал другой алгоритм задачи. ВБА как конструктор,можно изголятся по разному.

Автор - megavlom
Дата добавления - 14.09.2012 в 20:35
RAN Дата: Пятница, 14.09.2012, 20:39 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Алгоритм решения - знаю.
А вот алгоритм задачи? surprised


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеАлгоритм решения - знаю.
А вот алгоритм задачи? surprised

Автор - RAN
Дата добавления - 14.09.2012 в 20:39
Hugo Дата: Пятница, 14.09.2012, 20:39 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3586
Репутация: 778 ±
Замечаний: 0% ±

365
И это правильно smile
Уже только взять миллион из массива в словарь перебором занимает значительное время - кажется у меня доходило до 30 секунд...
Да. А на коллекции получается быстрее.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеИ это правильно smile
Уже только взять миллион из массива в словарь перебором занимает значительное время - кажется у меня доходило до 30 секунд...
Да. А на коллекции получается быстрее.

Автор - Hugo
Дата добавления - 14.09.2012 в 20:39
megavlom Дата: Пятница, 14.09.2012, 20:53 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 1 ±
Замечаний: 0% ±

RAN определенный перебор с проверками на каждую операцию,поэтому млн это только проверки.Извините большего....
 
Ответить
СообщениеRAN определенный перебор с проверками на каждую операцию,поэтому млн это только проверки.Извините большего....

Автор - megavlom
Дата добавления - 14.09.2012 в 20:53
Hugo Дата: Пятница, 14.09.2012, 23:54 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3586
Репутация: 778 ±
Замечаний: 0% ±

365
Провёл эксперимент - сгенерил миллион чисел вроде этого: 141623616791,714.

Время:

640912 collection: 15,53125
640912 dictionary: 112,3125
640912 dictionary2: 92,4375


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеПровёл эксперимент - сгенерил миллион чисел вроде этого: 141623616791,714.

Время:

640912 collection: 15,53125
640912 dictionary: 112,3125
640912 dictionary2: 92,4375

Автор - Hugo
Дата добавления - 14.09.2012 в 23:54
megavlom Дата: Суббота, 15.09.2012, 01:00 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 1 ±
Замечаний: 0% ±

Интересный вопрос ,почему часто пишут ,что dictionary быстрее col.Hugo, спасибо за сравнение.
 
Ответить
СообщениеИнтересный вопрос ,почему часто пишут ,что dictionary быстрее col.Hugo, спасибо за сравнение.

Автор - megavlom
Дата добавления - 15.09.2012 в 01:00
nerv Дата: Суббота, 15.09.2012, 18:24 | Сообщение № 16
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Quote (Hugo)
Провёл эксперимент - сгенерил миллион чисел вроде этого: 141623616791,714.

ты бы файл приложил, я на js попробовал перебрать smile

Quote (RAN)
А вот алгоритм задачи?

laugh

Quote (megavlom)
Спасибо,хотя надеялся..Для подсчета колва дублей. 1.Массив=15 2.Массив=130 Общее=145 Если Count меньше есть дубли.Ошибки отключить. Спасибо Вам.

в моем классе есть такой метод


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Quote (Hugo)
Провёл эксперимент - сгенерил миллион чисел вроде этого: 141623616791,714.

ты бы файл приложил, я на js попробовал перебрать smile

Quote (RAN)
А вот алгоритм задачи?

laugh

Quote (megavlom)
Спасибо,хотя надеялся..Для подсчета колва дублей. 1.Массив=15 2.Массив=130 Общее=145 Если Count меньше есть дубли.Ошибки отключить. Спасибо Вам.

в моем классе есть такой метод

Автор - nerv
Дата добавления - 15.09.2012 в 18:24
Alex_ST Дата: Суббота, 15.09.2012, 18:42 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3211
Репутация: 609 ±
Замечаний: 0% ±

2003
Провёл свой тест (не поверил, что мои любимые словари могут так подкачать smile ):

Сильно огорчился sad :
Code
Collection_Add               17,41406   
Dictionary_Add               59,15625   
Dictionary_Item              58,10938

А потом прикинул, что из коллекции нужно будет ещё циклом по одному куда-то выводить и немного успокоился biggrin



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Суббота, 15.09.2012, 18:58
 
Ответить
СообщениеПровёл свой тест (не поверил, что мои любимые словари могут так подкачать smile ):

Сильно огорчился sad :
Code
Collection_Add               17,41406   
Dictionary_Add               59,15625   
Dictionary_Item              58,10938

А потом прикинул, что из коллекции нужно будет ещё циклом по одному куда-то выводить и немного успокоился biggrin

Автор - Alex_ST
Дата добавления - 15.09.2012 в 18:42
Hugo Дата: Суббота, 15.09.2012, 18:45 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3586
Репутация: 778 ±
Замечаний: 0% ±

365
Файл в формате xlsb распух почти до 10 мб - куда прикладывать? Нагенери кодом свой миллион чего-нибудь smile
Я правда вручную тянул за несколько заходов - поэтому 640912 повторов smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеФайл в формате xlsb распух почти до 10 мб - куда прикладывать? Нагенери кодом свой миллион чего-нибудь smile
Я правда вручную тянул за несколько заходов - поэтому 640912 повторов smile

Автор - Hugo
Дата добавления - 15.09.2012 в 18:45
nerv Дата: Суббота, 15.09.2012, 18:50 | Сообщение № 19
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Alex_ST, я к коллекции охладел. Она сравнивает без учета регистра...

Quote (Hugo)
Файл в формате xlsb распух почти до 10 мб - куда прикладывать?

я думал, у тебя код генерит эти числа... А то бы потестили. Самому любопытно smile

Кто слепит тест-файл? )


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
СообщениеAlex_ST, я к коллекции охладел. Она сравнивает без учета регистра...

Quote (Hugo)
Файл в формате xlsb распух почти до 10 мб - куда прикладывать?

я думал, у тебя код генерит эти числа... А то бы потестили. Самому любопытно smile

Кто слепит тест-файл? )

Автор - nerv
Дата добавления - 15.09.2012 в 18:50
Hugo Дата: Суббота, 15.09.2012, 18:50 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3586
Репутация: 778 ±
Замечаний: 0% ±

365
Алексей, а если выводить не нужно? Если работа делается при занесении в коллекцию?
Просто была одна задача по сортировке миллиона на две части по хитрому закону - я на словаре уложился в 67 секунд, а Ted the Mechanic на коллекции в 11!


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеАлексей, а если выводить не нужно? Если работа делается при занесении в коллекцию?
Просто была одна задача по сортировке миллиона на две части по хитрому закону - я на словаре уложился в 67 секунд, а Ted the Mechanic на коллекции в 11!

Автор - Hugo
Дата добавления - 15.09.2012 в 18:50
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!