Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 04.04.2021
Сообщений: 4

Сортировка словаря

04.04.2021, 00:40. Показов 4325. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как отсортировать словарь по произведению ключа и значения?
INPUT:
30:8
50:12
40:14
20:10
OUTPUT:
30:8
20:10
40:14
50:12
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2021, 00:40
Ответы с готовыми решениями:

Сортировка Словаря
Доброго Времени Суток, подскажите, как бы мне отсортировать такой словарь в порядке УБЫВАНИЙ его значений? d={'a':5,'b':6,'c':8}

сортировка словаря
при запуске программы создается пустой словарь в процессе работы добавляются элементы. причем первое значение всегда число. при...

Сортировка словаря
##Дан словарь. Помогите остортировать его по значению Номер Dictionary = {'№':,'1':,'2':,'3':} print...

46
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 19:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Arsegg Посмотреть сообщение
что это так не работает.
Цитат из статьи на хабре, которая фактически цитирует кусок доки из dictobject.c.
Для целых чисел хэшами являются их значения, поэтому подряд идущие числа будут иметь подряд идущие хэши, а для строк подряд идущие строки имеют практически подряд идущие хэши. Это не обязательно плохо, напротив, в таблице размером 2**i взятие i младших бит хэша как начального индекса таблицы выполняется очень быстро, и для словарей, проиндексированных последовательностью целых чисел, коллизий не будет вообще:
То есть это работает именно так как я сказал (с некоторым уточнением, так как я тестировал не все случаи и в своем первом посте лишь вспомнил какие-то свои давние эксперименты с ключами словарей): особенность хэширования в dict в старых версиях Python приводила к тому, что для целочисленных подряд идущих ключей получался порядок совпадающий с их значением.

То, что я назвал это автосортировкой, ничего не меняет. Это можно как угодно назвать.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 19:07
Цитата Сообщение от Garry Galler Посмотреть сообщение
То есть это работает именно так как я сказал (с некоторым уточнением, так как я тестировал не все случаи и в своем первом посте лишь вспомнил какие-то свои давние эксперименты с ключами словарей): особенность хэширования в dict в старых версиях Python приводила к тому, что для целочисленных подряд идущих ключей получался порядок совпадающий с их значением.
Сортировка словаря

P. S. Диспут, полагаю, можно на этом закончить. Надоело...
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 19:23
Цитата Сообщение от Arsegg Посмотреть сообщение
Надоело...
То есть по вашему, то что написано в доке исходников - неправда?
И причем тут ваш забавный эксперимент, если там хэш одинаковый?

Добавлено через 6 минут
Неужели сложно - без выкрутасов с собственными функциями - взять и проверить что, например, 1000 подряд идущих чисел будет в Python 2.7 упорядочена по значению?

Python
1
2
3
4
5
6
import random
 
keys = [i for i in range(0,1000)]
 
random.shuffle(keys)
print {i:i for i in keys}
Python
1
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15, 16: 16, 17: 17, 18: 18, 19: 19, 20: 20, 21: 21, 22: 22, 23: 23, 24: 24, 25: 25, 26: 26, 27: 27, 28: 28, 29: 29, 30: 30, 31: 31, 32: 32, 33: 33, 34: 34, 35: 35, 36: 36, 37: 37, 38: 38, 39: 39, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, 47: 47, 48: 48, 49: 49, 50: 50, 51: 51, 52: 52, 53: 53, 54: 54, 55: 55, 56: 56, 57: 57, 58: 58, 59: 59, 60: 60, 61: 61, 62: 62, 63: 63, 64: 64, 65: 65, 66: 66, 67: 67, 68: 68, 69: 69, 70: 70, 71: 71, 72: 72, 73: 73, 74: 74, 75: 75, 76: 76, 77: 77, 78: 78, 79: 79, 80: 80, 81: 81, 82: 82, 83: 83, 84: 84, 85: 85, 86: 86, 87: 87, 88: 88, 89: 89, 90: 90, 91: 91, 92: 92, 93: 93, 94: 94, 95: 95, 96: 96, 97: 97, 98: 98, 99: 99, 100: 100, 101: 101, 102: 102, 103: 103, 104: 104, 105: 105, 106: 106, 107: 107, 108: 108, 109: 109, 110: 110, 111: 111, 112: 112, 113: 113, 114: 114, 115: 115, 116: 116, 117: 117, 118: 118, 119: 119, 120: 120, 121: 121, 122: 122, 123: 123, 124: 124, 125: 125, 126: 126, 127: 127, 128: 128, 129: 129, 130: 130, 131: 131, 132: 132, 133: 133, 134: 134, 135: 135, 136: 136, 137: 137, 138: 138, 139: 139, 140: 140, 141: 141, 142: 142, 143: 143, 144: 144, 145: 145, 146: 146, 147: 147, 148: 148, 149: 149, 150: 150, 151: 151, 152: 152, 153: 153, 154: 154, 155: 155, 156: 156, 157: 157, 158: 158, 159: 159, 160: 160, 161: 161, 162: 162, 163: 163, 164: 164, 165: 165, 166: 166, 167: 167, 168: 168, 169: 169, 170: 170, 171: 171, 172: 172, 173: 173, 174: 174, 175: 175, 176: 176, 177: 177, 178: 178, 179: 179, 180: 180, 181: 181, 182: 182, 183: 183, 184: 184, 185: 185, 186: 186, 187: 187, 188: 188, 189: 189, 190: 190, 191: 191, 192: 192, 193: 193, 194: 194, 195: 195, 196: 196, 197: 197, 198: 198, 199: 199, 200: 200, 201: 201, 202: 202, 203: 203, 204: 204, 205: 205, 206: 206, 207: 207, 208: 208, 209: 209, 210: 210, 211: 211, 212: 212, 213: 213, 214: 214, 215: 215, 216: 216, 217: 217, 218: 218, 219: 219, 220: 220, 221: 221, 222: 222, 223: 223, 224: 224, 225: 225, 226: 226, 227: 227, 228: 228, 229: 229, 230: 230, 231: 231, 232: 232, 233: 233, 234: 234, 235: 235, 236: 236, 237: 237, 238: 238, 239: 239, 240: 240, 241: 241, 242: 242, 243: 243, 244: 244, 245: 245, 246: 246, 247: 247, 248: 248, 249: 249, 250: 250, 251: 251, 252: 252, 253: 253, 254: 254, 255: 255, 256: 256, 257: 257, 258: 258, 259: 259, 260: 260, 261: 261, 262: 262, 263: 263, 264: 264, 265: 265, 266: 266, 267: 267, 268: 268, 269: 269, 270: 270, 271: 271, 272: 272, 273: 273, 274: 274, 275: 275, 276: 276, 277: 277, 278: 278, 279: 279, 280: 280, 281: 281, 282: 282, 283: 283, 284: 284, 285: 285, 286: 286, 287: 287, 288: 288, 289: 289, 290: 290, 291: 291, 292: 292, 293: 293, 294: 294, 295: 295, 296: 296, 297: 297, 298: 298, 299: 299, 300: 300, 301: 301, 302: 302, 303: 303, 304: 304, 305: 305, 306: 306, 307: 307, 308: 308, 309: 309, 310: 310, 311: 311, 312: 312, 313: 313, 314: 314, 315: 315, 316: 316, 317: 317, 318: 318, 319: 319, 320: 320, 321: 321, 322: 322, 323: 323, 324: 324, 325: 325, 326: 326, 327: 327, 328: 328, 329: 329, 330: 330, 331: 331, 332: 332, 333: 333, 334: 334, 335: 335, 336: 336, 337: 337, 338: 338, 339: 339, 340: 340, 341: 341, 342: 342, 343: 343, 344: 344, 345: 345, 346: 346, 347: 347, 348: 348, 349: 349, 350: 350, 351: 351, 352: 352, 353: 353, 354: 354, 355: 355, 356: 356, 357: 357, 358: 358, 359: 359, 360: 360, 361: 361, 362: 362, 363: 363, 364: 364, 365: 365, 366: 366, 367: 367, 368: 368, 369: 369, 370: 370, 371: 371, 372: 372, 373: 373, 374: 374, 375: 375, 376: 376, 377: 377, 378: 378, 379: 379, 380: 380, 381: 381, 382: 382, 383: 383, 384: 384, 385: 385, 386: 386, 387: 387, 388: 388, 389: 389, 390: 390, 391: 391, 392: 392, 393: 393, 394: 394, 395: 395, 396: 396, 397: 397, 398: 398, 399: 399, 400: 400, 401: 401, 402: 402, 403: 403, 404: 404, 405: 405, 406: 406, 407: 407, 408: 408, 409: 409, 410: 410, 411: 411, 412: 412, 413: 413, 414: 414, 415: 415, 416: 416, 417: 417, 418: 418, 419: 419, 420: 420, 421: 421, 422: 422, 423: 423, 424: 424, 425: 425, 426: 426, 427: 427, 428: 428, 429: 429, 430: 430, 431: 431, 432: 432, 433: 433, 434: 434, 435: 435, 436: 436, 437: 437, 438: 438, 439: 439, 440: 440, 441: 441, 442: 442, 443: 443, 444: 444, 445: 445, 446: 446, 447: 447, 448: 448, 449: 449, 450: 450, 451: 451, 452: 452, 453: 453, 454: 454, 455: 455, 456: 456, 457: 457, 458: 458, 459: 459, 460: 460, 461: 461, 462: 462, 463: 463, 464: 464, 465: 465, 466: 466, 467: 467, 468: 468, 469: 469, 470: 470, 471: 471, 472: 472, 473: 473, 474: 474, 475: 475, 476: 476, 477: 477, 478: 478, 479: 479, 480: 480, 481: 481, 482: 482, 483: 483, 484: 484, 485: 485, 486: 486, 487: 487, 488: 488, 489: 489, 490: 490, 491: 491, 492: 492, 493: 493, 494: 494, 495: 495, 496: 496, 497: 497, 498: 498, 499: 499, 500: 500, 501: 501, 502: 502, 503: 503, 504: 504, 505: 505, 506: 506, 507: 507, 508: 508, 509: 509, 510: 510, 511: 511, 512: 512, 513: 513, 514: 514, 515: 515, 516: 516, 517: 517, 518: 518, 519: 519, 520: 520, 521: 521, 522: 522, 523: 523, 524: 524, 525: 525, 526: 526, 527: 527, 528: 528, 529: 529, 530: 530, 531: 531, 532: 532, 533: 533, 534: 534, 535: 535, 536: 536, 537: 537, 538: 538, 539: 539, 540: 540, 541: 541, 542: 542, 543: 543, 544: 544, 545: 545, 546: 546, 547: 547, 548: 548, 549: 549, 550: 550, 551: 551, 552: 552, 553: 553, 554: 554, 555: 555, 556: 556, 557: 557, 558: 558, 559: 559, 560: 560, 561: 561, 562: 562, 563: 563, 564: 564, 565: 565, 566: 566, 567: 567, 568: 568, 569: 569, 570: 570, 571: 571, 572: 572, 573: 573, 574: 574, 575: 575, 576: 576, 577: 577, 578: 578, 579: 579, 580: 580, 581: 581, 582: 582, 583: 583, 584: 584, 585: 585, 586: 586, 587: 587, 588: 588, 589: 589, 590: 590, 591: 591, 592: 592, 593: 593, 594: 594, 595: 595, 596: 596, 597: 597, 598: 598, 599: 599, 600: 600, 601: 601, 602: 602, 603: 603, 604: 604, 605: 605, 606: 606, 607: 607, 608: 608, 609: 609, 610: 610, 611: 611, 612: 612, 613: 613, 614: 614, 615: 615, 616: 616, 617: 617, 618: 618, 619: 619, 620: 620, 621: 621, 622: 622, 623: 623, 624: 624, 625: 625, 626: 626, 627: 627, 628: 628, 629: 629, 630: 630, 631: 631, 632: 632, 633: 633, 634: 634, 635: 635, 636: 636, 637: 637, 638: 638, 639: 639, 640: 640, 641: 641, 642: 642, 643: 643, 644: 644, 645: 645, 646: 646, 647: 647, 648: 648, 649: 649, 650: 650, 651: 651, 652: 652, 653: 653, 654: 654, 655: 655, 656: 656, 657: 657, 658: 658, 659: 659, 660: 660, 661: 661, 662: 662, 663: 663, 664: 664, 665: 665, 666: 666, 667: 667, 668: 668, 669: 669, 670: 670, 671: 671, 672: 672, 673: 673, 674: 674, 675: 675, 676: 676, 677: 677, 678: 678, 679: 679, 680: 680, 681: 681, 682: 682, 683: 683, 684: 684, 685: 685, 686: 686, 687: 687, 688: 688, 689: 689, 690: 690, 691: 691, 692: 692, 693: 693, 694: 694, 695: 695, 696: 696, 697: 697, 698: 698, 699: 699, 700: 700, 701: 701, 702: 702, 703: 703, 704: 704, 705: 705, 706: 706, 707: 707, 708: 708, 709: 709, 710: 710, 711: 711, 712: 712, 713: 713, 714: 714, 715: 715, 716: 716, 717: 717, 718: 718, 719: 719, 720: 720, 721: 721, 722: 722, 723: 723, 724: 724, 725: 725, 726: 726, 727: 727, 728: 728, 729: 729, 730: 730, 731: 731, 732: 732, 733: 733, 734: 734, 735: 735, 736: 736, 737: 737, 738: 738, 739: 739, 740: 740, 741: 741, 742: 742, 743: 743, 744: 744, 745: 745, 746: 746, 747: 747, 748: 748, 749: 749, 750: 750, 751: 751, 752: 752, 753: 753, 754: 754, 755: 755, 756: 756, 757: 757, 758: 758, 759: 759, 760: 760, 761: 761, 762: 762, 763: 763, 764: 764, 765: 765, 766: 766, 767: 767, 768: 768, 769: 769, 770: 770, 771: 771, 772: 772, 773: 773, 774: 774, 775: 775, 776: 776, 777: 777, 778: 778, 779: 779, 780: 780, 781: 781, 782: 782, 783: 783, 784: 784, 785: 785, 786: 786, 787: 787, 788: 788, 789: 789, 790: 790, 791: 791, 792: 792, 793: 793, 794: 794, 795: 795, 796: 796, 797: 797, 798: 798, 799: 799, 800: 800, 801: 801, 802: 802, 803: 803, 804: 804, 805: 805, 806: 806, 807: 807, 808: 808, 809: 809, 810: 810, 811: 811, 812: 812, 813: 813, 814: 814, 815: 815, 816: 816, 817: 817, 818: 818, 819: 819, 820: 820, 821: 821, 822: 822, 823: 823, 824: 824, 825: 825, 826: 826, 827: 827, 828: 828, 829: 829, 830: 830, 831: 831, 832: 832, 833: 833, 834: 834, 835: 835, 836: 836, 837: 837, 838: 838, 839: 839, 840: 840, 841: 841, 842: 842, 843: 843, 844: 844, 845: 845, 846: 846, 847: 847, 848: 848, 849: 849, 850: 850, 851: 851, 852: 852, 853: 853, 854: 854, 855: 855, 856: 856, 857: 857, 858: 858, 859: 859, 860: 860, 861: 861, 862: 862, 863: 863, 864: 864, 865: 865, 866: 866, 867: 867, 868: 868, 869: 869, 870: 870, 871: 871, 872: 872, 873: 873, 874: 874, 875: 875, 876: 876, 877: 877, 878: 878, 879: 879, 880: 880, 881: 881, 882: 882, 883: 883, 884: 884, 885: 885, 886: 886, 887: 887, 888: 888, 889: 889, 890: 890, 891: 891, 892: 892, 893: 893, 894: 894, 895: 895, 896: 896, 897: 897, 898: 898, 899: 899, 900: 900, 901: 901, 902: 902, 903: 903, 904: 904, 905: 905, 906: 906, 907: 907, 908: 908, 909: 909, 910: 910, 911: 911, 912: 912, 913: 913, 914: 914, 915: 915, 916: 916, 917: 917, 918: 918, 919: 919, 920: 920, 921: 921, 922: 922, 923: 923, 924: 924, 925: 925, 926: 926, 927: 927, 928: 928, 929: 929, 930: 930, 931: 931, 932: 932, 933: 933, 934: 934, 935: 935, 936: 936, 937: 937, 938: 938, 939: 939, 940: 940, 941: 941, 942: 942, 943: 943, 944: 944, 945: 945, 946: 946, 947: 947, 948: 948, 949: 949, 950: 950, 951: 951, 952: 952, 953: 953, 954: 954, 955: 955, 956: 956, 957: 957, 958: 958, 959: 959, 960: 960, 961: 961, 962: 962, 963: 963, 964: 964, 965: 965, 966: 966, 967: 967, 968: 968, 969: 969, 970: 970, 971: 971, 972: 972, 973: 973, 974: 974, 975: 975, 976: 976, 977: 977, 978: 978, 979: 979, 980: 980, 981: 981, 982: 982, 983: 983, 984: 984, 985: 985, 986: 986, 987: 987, 988: 988, 989: 989, 990: 990, 991: 991, 992: 992, 993: 993, 994: 994, 995: 995, 996: 996, 997: 997, 998: 998, 999: 999}
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 19:25

Не по теме:

Цитата Сообщение от Garry Galler Посмотреть сообщение
Цитат из статьи на хабре
Garry Galler, на заборе тоже написано, но верите ли вы всему, что там написано?


По теме: я привел опровергающий пример. А именно привел такую последовательность целых чисел, для которого написанное Вами выше неверно. Или хотите поспорить на этот счет?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 19:32
Цитата Сообщение от Arsegg Посмотреть сообщение
А именно привел такую последовательность целых чисел,
C отрицательными значениями? Да, они сюда не вписываются.
Тогда можно добавить что, упорядочивание ключей словарей по значению работает в Python 2.7 для положительных, и лишь потом для отрицательных. Поэтому они оказываются в конце последовательности положительных ключей. Да, отрицательные значения вообще никак не упорядочиваются.

Цитата Сообщение от Arsegg Посмотреть сообщение
на заборе тоже написано
Статья - копипаст комментов разработчиков Python в исходниках.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 19:37
Цитата Сообщение от Garry Galler Посмотреть сообщение
C отрицательными значениями? Да, они сюда не вписываются.
Python
1
2
3
4
5
6
7
8
9
from random import shuffle
 
class Integer(int):
  def __hash__(self):
    return 1337
 
keys = range(1000)
shuffle(keys)
print dict.fromkeys(map(Integer, keys))
Выводит:
Python
1
{311: None, 752: None, 778: None, 280: None, 959: None, 271: None, 120: None, 338: None, 810: None, 615: None, 203: None, 213: None, 729: None, 912: None, 178: None, 350: None, 969: None, 121: None, 662: None, 359: None, 420: None, 919: None, 768: None, 382: None, 867: None, 789: None, 558: None, 585: None, 652: None, 300: None, 583: None, 320: None, 928: None, 125: None, 532: None, 475: None, 74: None, 690: None, 73: None, 103: None, 764: None, 649: None, 164: None, 423: None, 904: None, 812: None, 869: None, 60: None, 759: None, 653: None, 547: None, 743: None, 387: None, 493: None, 5: None, 175: None, 737: None, 862: None, 339: None, 235: None, 746: None, 347: None, 189: None, 411: None, 94: None, 751: None, 467: None, 309: None, 779: None, 326: None, 83: None, 715: None, 379: None, 570: None, 329: None, 461: None, 322: None, 186: None, 750: None, 68: None, 605: None, 256: None, 215: None, 949: None, 701: None, 798: None, 898: None, 295: None, 80: None, 536: None, 431: None, 435: None, 864: None, 110: None, 142: None, 542: None, 758: None, 312: None, 727: None, 749: None, 673: None, 206: None, 63: None, 437: None, 357: None, 433: None, 699: None, 906: None, 53: None, 723: None, 800: None, 731: None, 165: None, 534: None, 108: None, 324: None, 606: None, 397: None, 769: None, 627: None, 821: None, 223: None, 518: None, 184: None, 162: None, 388: None, 474: None, 6: None, 176: None, 922: None, 531: None, 933: None, 695: None, 920: None, 533: None, 817: None, 565: None, 646: None, 549: None, 586: None, 278: None, 479: None, 254: None, 803: None, 8: None, 961: None, 204: None, 199: None, 924: None, 141: None, 181: None, 101: None, 19: None, 859: None, 452: None, 500: None, 839: None, 850: None, 415: None, 58: None, 89: None, 67: None, 227: None, 805: None, 172: None, 337: None, 12: None, 612: None, 902: None, 358: None, 262: None, 403: None, 18: None, 972: None, 343: None, 22: None, 645: None, 124: None, 991: None, 665: None, 748: None, 544: None, 352: None, 881: None, 788: None, 505: None, 298: None, 385: None, 658: None, 683: None, 441: None, 26: None, 10: None, 650: None, 24: None, 878: None, 515: None, 252: None, 630: None, 333: None, 71: None, 428: None, 456: None, 660: None, 402: None, 733: None, 46: None, 55: None, 221: None, 490: None, 276: None, 999: None, 636: None, 799: None, 272: None, 848: None, 150: None, 795: None, 236: None, 241: None, 865: None, 705: None, 787: None, 651: None, 861: None, 42: None, 550: None, 742: None, 849: None, 463: None, 269: None, 526: None, 57: None, 581: None, 366: None, 815: None, 709: None, 770: None, 91: None, 488: None, 243: None, 594: None, 797: None, 590: None, 76: None, 584: None, 506: None, 678: None, 907: None, 114: None, 390: None, 70: None, 41: None, 892: None, 163: None, 543: None, 267: None, 692: None, 257: None, 721: None, 92: None, 494: None, 98: None, 525: None, 240: None, 629: None, 896: None, 249: None, 831: None, 158: None, 871: None, 349: None, 555: None, 993: None, 211: None, 634: None, 927: None, 140: None, 945: None, 814: None, 198: None, 796: None, 115: None, 220: None, 784: None, 529: None, 528: None, 781: None, 711: None, 693: None, 563: None, 722: None, 857: None, 926: None, 905: None, 313: None, 250: None, 317: None, 754: None, 520: None, 375: None, 485: None, 675: None, 620: None, 860: None, 822: None, 79: None, 686: None, 608: None, 931: None, 200: None, 282: None, 577: None, 975: None, 856: None, 918: None, 61: None, 791: None, 755: None, 943: None, 362: None, 242: None, 974: None, 169: None, 145: None, 728: None, 539: None, 511: None, 732: None, 689: None, 378: None, 183: None, 160: None, 546: None, 29: None, 287: None, 446: None, 386: None, 398: None, 833: None, 886: None, 512: None, 289: None, 52: None, 876: None, 950: None, 51: None, 444: None, 638: None, 508: None, 97: None, 31: None, 212: None, 806: None, 785: None, 457: None, 804: None, 676: None, 971: None, 647: None, 119: None, 255: None, 548: None, 560: None, 888: None, 225: None, 633: None, 361: None, 981: None, 739: None, 614: None, 465: None, 23: None, 730: None, 530: None, 900: None, 149: None, 273: None, 648: None, 356: None, 837: None, 773: None, 510: None, 725: None, 32: None, 453: None, 882: None, 696: None, 599: None, 744: None, 391: None, 78: None, 895: None, 997: None, 445: None, 296: None, 874: None, 637: None, 747: None, 503: None, 194: None, 735: None, 940: None, 307: None, 913: None, 666: None, 985: None, 990: None, 802: None, 923: None, 836: None, 916: None, 232: None, 153: None, 545: None, 714: None, 348: None, 392: None, 265: None, 958: None, 380: None, 154: None, 866: None, 409: None, 301: None, 464: None, 422: None, 842: None, 757: None, 481: None, 13: None, 691: None, 521: None, 694: None, 640: None, 499: None, 330: None, 685: None, 258: None, 879: None, 275: None, 86: None, 767: None, 604: None, 261: None, 381: None, 25: None, 551: None, 268: None, 416: None, 883: None, 328: None, 473: None, 987: None, 355: None, 127: None, 360: None, 538: None, 197: None, 603: None, 823: None, 668: None, 48: None, 156: None, 37: None, 939: None, 984: None, 315: None, 424: None, 891: None, 207: None, 245: None, 477: None, 109: None, 234: None, 911: None, 129: None, 468: None, 522: None, 11: None, 893: None, 434: None, 998: None, 687: None, 936: None, 304: None, 123: None, 253: None, 917: None, 460: None, 622: None, 410: None, 50: None, 826: None, 137: None, 894: None, 364: None, 38: None, 794: None, 341: None, 279: None, 523: None, 418: None, 591: None, 775: None, 519: None, 502: None, 765: None, 77: None, 210: None, 224: None, 680: None, 497: None, 318: None, 7: None, 408: None, 618: None, 956: None, 173: None, 3: None, 846: None, 745: None, 66: None, 863: None, 838: None, 478: None, 157: None, 370: None, 39: None, 299: None, 498: None, 527: None, 897: None, 569: None, 308: None, 305: None, 516: None, 302: None, 595: None, 395: None, 986: None, 36: None, 621: None, 480: None, 602: None, 404: None, 832: None, 368: None, 238: None, 492: None, 462: None, 281: None, 195: None, 889: None, 417: None, 489: None, 228: None, 40: None, 430: None, 342: None, 196: None, 44: None, 193: None, 639: None, 782: None, 761: None, 820: None, 459: None, 772: None, 247: None, 105: None, 682: None, 557: None, 286: None, 908: None, 669: None, 174: None, 807: None, 104: None, 167: None, 868: None, 116: None, 87: None, 824: None, 976: None, 948: None, 955: None, 170: None, 248: None, 303: None, 148: None, 413: None, 601: None, 566: None, 967: None, 655: None, 118: None, 977: None, 598: None, 877: None, 64: None, 81: None, 396: None, 875: None, 740: None, 443: None, 801: None, 674: None, 930: None, 914: None, 562: None, 708: None, 718: None, 214: None, 314: None, 432: None, 451: None, 369: None, 346: None, 568: None, 571: None, 126: None, 793: None, 96: None, 995: None, 476: None, 561: None, 964: None, 567: None, 260: None, 229: None, 702: None, 283: None, 507: None, 454: None, 180: None, 469: None, 20: None, 580: None, 367: None, 400: None, 766: None, 412: None, 703: None, 609: None, 144: None, 75: None, 482: None, 524: None, 34: None, 143: None, 112: None, 989: None, 147: None, 844: None, 596: None, 760: None, 179: None, 809: None, 130: None, 344: None, 205: None, 284: None, 982: None, 168: None, 724: None, 185: None, 910: None, 887: None, 818: None, 450: None, 2: None, 951: None, 593: None, 134: None, 960: None, 825: None, 135: None, 978: None, 966: None, 471: None, 698: None, 816: None, 707: None, 880: None, 202: None, 628: None, 440: None, 297: None, 873: None, 771: None, 710: None, 421: None, 830: None, 222: None, 679: None, 100: None, 442: None, 858: None, 613: None, 901: None, 973: None, 631: None, 938: None, 336: None, 855: None, 384: None, 885: None, 663: None, 59: None, 113: None, 792: None, 151: None, 470: None, 783: None, 947: None, 436: None, 21: None, 345: None, 517: None, 426: None, 992: None, 952: None, 909: None, 334: None, 575: None, 808: None, 884: None, 136: None, 146: None, 466: None, 713: None, 14: None, 239: None, 616: None, 941: None, 405: None, 192: None, 43: None, 870: None, 0: None, 354: None, 277: None, 619: None, 617: None, 610: None, 495: None, 263: None, 929: None, 182: None, 643: None, 903: None, 738: None, 335: None, 448: None, 54: None, 264: None, 540: None, 953: None, 35: None, 439: None, 285: None, 28: None, 133: None, 419: None, 99: None, 389: None, 128: None, 190: None, 925: None, 332: None, 600: None, 670: None, 399: None, 988: None, 231: None, 95: None, 161: None, 641: None, 717: None, 513: None, 401: None, 756: None, 449: None, 980: None, 496: None, 292: None, 374: None, 632: None, 33: None, 553: None, 962: None, 994: None, 306: None, 407: None, 872: None, 93: None, 704: None, 944: None, 414: None, 672: None, 131: None, 325: None, 932: None, 290: None, 573: None, 288: None, 726: None, 259: None, 697: None, 16: None, 681: None, 741: None, 834: None, 716: None, 576: None, 688: None, 138: None, 217: None, 734: None, 827: None, 626: None, 835: None, 65: None, 753: None, 979: None, 15: None, 853: None, 319: None, 237: None, 447: None, 90: None, 845: None, 935: None, 373: None, 111: None, 554: None, 684: None, 582: None, 780: None, 486: None, 635: None, 377: None, 843: None, 351: None, 187: None, 371: None, 946: None, 122: None, 244: None, 706: None, 218: None, 625: None, 537: None, 393: None, 472: None, 915: None, 786: None, 1: None, 425: None, 209: None, 597: None, 321: None, 661: None, 363: None, 700: None, 323: None, 30: None, 840: None, 656: None, 642: None, 564: None, 171: None, 607: None, 829: None, 491: None, 556: None, 504: None, 671: None, 45: None, 365: None, 899: None, 811: None, 438: None, 17: None, 274: None, 587: None, 963: None, 383: None, 62: None, 72: None, 664: None, 226: None, 777: None, 188: None, 763: None, 270: None, 852: None, 429: None, 427: None, 509: None, 890: None, 983: None, 230: None, 27: None, 266: None, 514: None, 719: None, 455: None, 623: None, 774: None, 657: None, 535: None, 88: None, 541: None, 559: None, 937: None, 968: None, 177: None, 487: None, 552: None, 316: None, 579: None, 394: None, 4: None, 677: None, 69: None, 353: None, 310: None, 293: None, 159: None, 191: None, 106: None, 152: None, 219: None, 970: None, 851: None, 208: None, 501: None, 654: None, 644: None, 216: None, 84: None, 139: None, 572: None, 611: None, 589: None, 166: None, 117: None, 49: None, 667: None, 712: None, 132: None, 942: None, 578: None, 85: None, 624: None, 819: None, 957: None, 847: None, 828: None, 9: None, 327: None, 340: None, 56: None, 246: None, 762: None, 592: None, 291: None, 406: None, 720: None, 854: None, 233: None, 483: None, 458: None, 996: None, 776: None, 965: None, 372: None, 201: None, 934: None, 841: None, 484: None, 155: None, 659: None, 736: None, 294: None, 813: None, 376: None, 107: None, 574: None, 588: None, 790: None, 47: None, 102: None, 921: None, 251: None, 954: None, 331: None, 82: None}
Вопрос: где Ваша обещанная сортировка?
Integer - целое число. Если докажете обратное, то флаг вам в руки.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 19:52
Цитата Сообщение от Arsegg Посмотреть сообщение
Вопрос: где Ваша обещанная сортировка?
Зачем делать хэш одинаковым?

Цитата Сообщение от Arsegg Посмотреть сообщение
Если докажете обратное, то флаг вам в руки.
Я ничего доказывать не собираюсь, это вы пытаетесь доказать что-то свое... Я лишь взял документацию и показал как было в Python 2.7.
Попробуйте обратиться к Гвидо.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 19:56
Цитата Сообщение от Garry Galler Посмотреть сообщение
Я ничего доказывать не собираюсь это вы пытаетесь доказать что-то свое...
Что и требовалось доказать. Буду считать, что спор исчерпан.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Зачем делать хэш одинаковым?
Я этим показал Вам, что хеширование к сортировке не имеет никакого отношения. По крайней мере пытался, но вы в упор отказываетесь воспринимать, вроде бы, очевидные и общеизвестные факты.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 22:18
Цитата Сообщение от Arsegg Посмотреть сообщение
Я этим показал Вам, что хеширование к сортировке не имеет никакого отношения.
Вот и я говорю, что вы пытались доказать что-то свое, что не имеет никакого отношения к моим утверждениям.
Я прекрасно знаю некую очевидность, которую вы пытались зачем-то разжевать человеку, который это и так знает.
Только какой вы смысл в этом - я не понял.

Мой пост был про то, что словари в Python 2.7 и до Python 3.6 упорядочивали (и опять я скажу - сортировали, потому что так тоже можно сказать) свои числовые ключи по значению.
Сортировали не в том смысле, что прям брали и сортировали, а такой побочный эффект был. (В Python 3.6 побочным эффектом оказалось другое: сохранение порядка вставки.)
С поправкой на то, что отрицательные значения таким образом не упорядочивались (например, -1 и -2 дают одинаковый хэш, что приводит к необходимости разрешать коллизию)).
И то, что это именно так - ясно всем, кроме, видимо, вас.

А знаете с чем это связано? Так ответ же есть доках, только вы их не прочитали.
Major subtleties ahead: Most hash schemes depend on having a "good" hash
function, in the sense of simulating randomness. Python doesn't: its most
important hash functions (for strings and ints) are very regular in common
cases
:
>>>[hash(i) for i in range(4)]
[0, 1, 2, 3]
This isn't necessarily bad! To the contrary, in a table of size 2**i, taking
the low-order i bits as the initial table index is extremely fast, and there
are no collisions at all for dicts indexed by a contiguous range of ints. So
this gives better-than-random behavior in common cases, and that's very
desirable.

Вас зацепила слово "сортировка"?
Не стоит цепляться к многозначным словам, которые могут употребляться в разных смыслах.
Как можно назвать эффект упорядочивания хэшей по значению? Да, как угодно, в том числе и сортировкой, как бы вам это не нравилось.

Добавлено через 5 минут
Цитата Сообщение от Arsegg Посмотреть сообщение
Буду считать, что спор исчерпан.
Спор? Я чего-то не заметил его... Видимо
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 22:19
Цитата Сообщение от Garry Galler Посмотреть сообщение
Мой пост был про то, что словари в Python 2.7 и до Python 3.6 упорядочивали свои числовые ключи по значению.
Dictionaries:
It is best to think of a dictionary as an unordered set of key: value pairs, with the requirement that the keys are unique (within one dictionary). A pair of braces creates an empty dictionary: {}. Placing a comma-separated list of key:value pairs within the braces adds initial key:value pairs to the dictionary; this is also the way dictionaries are written on output.
В каком месте вы видите порядок?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 22:39
Цитата Сообщение от Arsegg Посмотреть сообщение
It is best to think of a dictionary as an unordered set of key
Это описание общего случая. Как оно опровергает тот факт, что миллион числовых положительных ключей будут выведены в Python 2.7 согласно возрастанию их значения?
Python
1
2
3
4
5
6
import random
 
keys = [i for i in range(1000000)]
random.shuffle(keys)
 
print sorted(keys) == {i:i for i in keys}.keys()
Code
1
True

Никак не опровергает.
-----------------
Или это та самая случайность, которая случайно все упорядочила?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 22:54
Цитата Сообщение от Garry Galler Посмотреть сообщение
Или это та самая случайность, которая случайно все упорядочила?
Вы ищете закономерности, там где их быть не должно. Уровня, что сумма цифр года рождения у великих политиков равна 18.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Как оно опровергает тот факт, что миллион числовых положительных ключей будут выведены в Python 2.7 согласно возрастанию их значения?
Аналогично, вы пытаетесь найти связи там, где их нет и быть не может - вещи абсолютно никак не связанные между собой.

Дабы не быть голословным:
Python
1
2
keys = range(0, 10 ** 1000, 10 ** 999)
print sorted(keys) == list(dict.fromkeys(keys))
Выводит: False, что явно опровергает вашу "гипотезу".
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 23:38
Цитата Сообщение от Arsegg Посмотреть сообщение
Выводит: False, что явно опровергает вашу "гипотезу".
Про последовательно идущий ряд чисел вы не прочитали?
И это не моя гипотеза - вы опять ничего не прочитали.

И как-то странно использовать для типа опровержения Big Numbers.

Цитата Сообщение от Arsegg Посмотреть сообщение
Вы ищете закономерности, там где их быть не должно
Я их не ищу - они описаны в комментариях разработчиков: про регулярность Python хэш функций для простых значений и что из этого получается.

Ремарка по поводу этого забавного кода:
Цитата Сообщение от Arsegg Посмотреть сообщение
def __hash__(self):
    return 1337
Использование одинакового хэша равнозначно отказу от него.

история в тему:
Один человек решил доказать что на автомобиле нельзя перегнать черепаху.
Он вытащил из машины движок и пробил днище, после чего попытался сдвинуть автомобиль мускульной силой ног.
У него ничего не вышло. После чего он радостно заявил собравшимся: ну вот видите!
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 23:48
Цитата Сообщение от Garry Galler Посмотреть сообщение
Про последовательно идущий ряд чисел вы не прочитали?
Мда, решили во все тяжкие?

Python
1
2
keys = range(2 ** 31 - 2, 2 ** 31 + 1)
print sorted(keys) == list(dict.fromkeys(keys))
Выведет: False.

Цитата Сообщение от Garry Galler Посмотреть сообщение
Я прекрасно знаю некую очевидность, которую вы пытались зачем-то разжевать человеку, который это и так знает.
Если бы это было так...
Хотя что-то не знать - нет ничего постыдного. Стыдно быть неправым и при этом продолжать гнуть свою линию...
/upd
Цитата Сообщение от Garry Galler Посмотреть сообщение
И как-то странно использовать для типа опровержения Big Numbers.
Странно придумывать каждый раз новые оправдания...
/upd2
Предвосхищу данный "аргумент":
Python
1
2
keys = range(2 ** 31 - 2, 2 ** 31 + 1)
print map(type, keys)
Выведет (вы не поверите!): [<type 'int'>, <type 'int'>, <type 'int'>].
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 23:52
Цитата Сообщение от Arsegg Посмотреть сообщение
вы пытаетесь найти связи там, где их нет и быть не может
Закономерность есть. Просто вы ее не видите. И не хотите услышать разработчиков Python, которые так или иначе это подтвердили своим нехитрым примером из комментариев к исходникам dict.
Я вам показал ее на примере миллиона последовательных чисел.
Только слепец ее не увидит.

То что закономерность распространяется на весь ряд чисел никто не утверждал - вы это сами выдумали и теперь пытаетесь подогнать свои примеры под любой ряд чисел.

Цитата Сообщение от Arsegg Посмотреть сообщение
Странно придумывать каждый раз новые оправдания...
Странно полагать для программиста, что нет закономерностей. Даже в рандомной функции она есть. И поэтому ее и называют псевдорандомной.

Цитата Сообщение от Arsegg Посмотреть сообщение
Хотя что-то не знать - нет ничего постыдного
Да. И вам нужно задуматься над этим.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
05.04.2021, 00:02
Цитата Сообщение от Garry Galler Посмотреть сообщение
Закономерность есть. Просто вы ее не видите.
Печальное зрелище...

P. S. Напомнило:

0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
05.04.2021, 00:06
Цитата Сообщение от Garry Galler Посмотреть сообщение
Странно полагать для программиста, что нет закономерностей. Даже в рандомной функции она есть. И поэтому ее и называют псевдорандомной.
Ага, вы еще в аналоговом сигнале ищите закономерность)))
/upd
Цитата Сообщение от Garry Galler Посмотреть сообщение
Да. И вам нужно задуматься над этим.
Просветите же, мне, несведующему неучу, истину!
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
05.04.2021, 00:08
Нда, тяжелый случай, раз в ход пошли картинки.

Начнем с начала.
Моя гипотеза:
Для последовательно неразрывно идущих положительных чисел определенного диапазона Python хэш функция выдает такой же последовательно идущий ряд чисел.
Доказательство из Python исходников:
Python
1
2
map(hash, (0, 1, 2, 3))
[0, 1, 2, 3]
Опровергните. Конкретно на примере этого диапазона из четырех чисел.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
05.04.2021, 00:17

Не по теме:

Цитата Сообщение от Garry Galler Посмотреть сообщение
Начнем с начала.
Моя гипотеза:
Для последовательно неразрывно идущих положительных чисел определенного диапазона Python хэш функция выдает такой же последовательно идущий ряд чисел.
Доказательство из Python исходников:
Печальное зрелище...
Цитата Сообщение от Garry Galler Посмотреть сообщение
Опровергните. Конкретно на примере этого диапазона из четырех чисел.
Вам не надоело еще? Вы точно не под синей?


По теме: у вас серьезный пробел в знаниях, касательно хеш-таблиц. Спорить дальше я не вижу смысла. За сим тему покидаю.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
05.04.2021, 00:20
Цитата Сообщение от Arsegg Посмотреть сообщение
Спорить дальше я не вижу смысла
То есть все - вы осознали, что доказывали совсем иное (свою выдуманную гипотезу), а когда я сформулировал свою (раз было недостаточно простых высказываний) - сразу в кусты?

Цитата Сообщение от Arsegg Посмотреть сообщение
у вас серьезный пробел в знаниях, касательно хеш-таблиц.
Апелляция к личности говорит о конечности аргументов и является типичной логической ошибкой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.04.2021, 00:20
Помогаю со студенческими работами здесь

Сортировка словаря
Функция сортировки по алфавиту: def alphabet_sort(to_sort: dict) -&gt; dict: # Сортировка в алфавитном порядке производителей ...

Сортировка словаря
добрый день. Помогите отсортировать список. def main(): spisok = {'a': {1, 2, 3}, 'b': {3, 4, 5}, 'c': {5, 6}, } korteg =...

Сортировка словаря
Всем привет. Есть словарь: babynames = { 'София, Софья': { 2012: ', 2010: ', 2005: ',

Сортировка словаря
Функция которая возвращает словарь. Но бывает что возвращает его не в том порядке в котором задавался. def multiply(vector, num): ...

Сортировка словаря
database = { &quot;Группа1&quot;:, , ], &quot;Группа2&quot;:, ] } def cout2(groupname): for key in...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru