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

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

04.04.2021, 00:40. Показов 4769. Ответов 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
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 19:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Arsegg Посмотреть сообщение
что это так не работает.
Цитат из статьи на хабре, которая фактически цитирует кусок доки из dictobject.c.
Для целых чисел хэшами являются их значения, поэтому подряд идущие числа будут иметь подряд идущие хэши, а для строк подряд идущие строки имеют практически подряд идущие хэши. Это не обязательно плохо, напротив, в таблице размером 2**i взятие i младших бит хэша как начального индекса таблицы выполняется очень быстро, и для словарей, проиндексированных последовательностью целых чисел, коллизий не будет вообще:
То есть это работает именно так как я сказал (с некоторым уточнением, так как я тестировал не все случаи и в своем первом посте лишь вспомнил какие-то свои давние эксперименты с ключами словарей): особенность хэширования в dict в старых версиях Python приводила к тому, что для целочисленных подряд идущих ключей получался порядок совпадающий с их значением.

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

P. S. Диспут, полагаю, можно на этом закончить. Надоело...
0
Эксперт Python
5439 / 3860 / 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
3584 / 2184 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 19:25

Не по теме:

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


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

Цитата Сообщение от Arsegg Посмотреть сообщение
на заборе тоже написано
Статья - копипаст комментов разработчиков Python в исходниках.
0
3584 / 2184 / 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
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 19:52
Цитата Сообщение от Arsegg Посмотреть сообщение
Вопрос: где Ваша обещанная сортировка?
Зачем делать хэш одинаковым?

Цитата Сообщение от Arsegg Посмотреть сообщение
Если докажете обратное, то флаг вам в руки.
Я ничего доказывать не собираюсь, это вы пытаетесь доказать что-то свое... Я лишь взял документацию и показал как было в Python 2.7.
Попробуйте обратиться к Гвидо.
0
3584 / 2184 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
04.04.2021, 19:56
Цитата Сообщение от Garry Galler Посмотреть сообщение
Я ничего доказывать не собираюсь это вы пытаетесь доказать что-то свое...
Что и требовалось доказать. Буду считать, что спор исчерпан.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Зачем делать хэш одинаковым?
Я этим показал Вам, что хеширование к сортировке не имеет никакого отношения. По крайней мере пытался, но вы в упор отказываетесь воспринимать, вроде бы, очевидные и общеизвестные факты.
0
Эксперт Python
5439 / 3860 / 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
3584 / 2184 / 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
5439 / 3860 / 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
3584 / 2184 / 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
5439 / 3860 / 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
3584 / 2184 / 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
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.04.2021, 23:52
Цитата Сообщение от Arsegg Посмотреть сообщение
вы пытаетесь найти связи там, где их нет и быть не может
Закономерность есть. Просто вы ее не видите. И не хотите услышать разработчиков Python, которые так или иначе это подтвердили своим нехитрым примером из комментариев к исходникам dict.
Я вам показал ее на примере миллиона последовательных чисел.
Только слепец ее не увидит.

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

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

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

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

0
3584 / 2184 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
05.04.2021, 00:06
Цитата Сообщение от Garry Galler Посмотреть сообщение
Странно полагать для программиста, что нет закономерностей. Даже в рандомной функции она есть. И поэтому ее и называют псевдорандомной.
Ага, вы еще в аналоговом сигнале ищите закономерность)))
/upd
Цитата Сообщение от Garry Galler Посмотреть сообщение
Да. И вам нужно задуматься над этим.
Просветите же, мне, несведующему неучу, истину!
0
Эксперт Python
5439 / 3860 / 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
3584 / 2184 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
05.04.2021, 00:17

Не по теме:

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


По теме: у вас серьезный пробел в знаниях, касательно хеш-таблиц. Спорить дальше я не вижу смысла. За сим тему покидаю.
0
Эксперт Python
5439 / 3860 / 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
Ответ Создать тему
Новые блоги и статьи
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru