Я хотел проверить, как работает сравнение строк (я хотел посмотреть, является ли это символом char, и если он проверяет длину строки перед сравнением), поэтому я использовал этот код :Непоследовательность сравнения строк в Python
s1 = 'abc'
s2 = 'abcd'
s3 = 'dbc'
s4 = 'abd'
t1 = time.clock()
s1==s2
print time.clock() - t1
t2 = time.clock()
s1==s3
print time.clock() - t2
t3 = time.clock()
s1==s4
print time.clock() - t3
Когда я попробовал то же самое на очень длинных строк (~ 30MB текстовые файлы) он работал большой, и я узнал, что он выполняет проверку длины, а также сравнивает символ с помощью полукокса. Но когда я пробовал его на короткой строке (например, в коде выше), результаты производительности были очень непоследовательными. У любого есть идея, почему они были непоследовательными или что я сделал неправильно? (возможно, я ошибся, и сравнение не работает, как я думал?)
Редактировать: Пример для чего-то, что я также пробовал, это сравнить разные длины строки с определенной строкой. Я думал, что тот, который занимает больше всего времени, будет строкой с точной длиной другой, потому что остальные будут падать в проверке длины, но это также было непоследовательно). позволяет сказать, что строка, которую я проверяю, это «привет», поэтому я сравнил «a», «aa», «aaa» и т. Д. ... Я ожидал увидеть, что самая длинная проверка будет «aaaaa», но это было «а», и я понятия не имею, почему.
«результаты были очень противоречивыми» - каким образом? Какой результат вы ожидали, и что вы видели? – TigerhawkT3
@ TigerhawkT3 Я только что отредактировал сообщение, чтобы сделать его более понятным. – pystudent
'time.clock' не является отличным выбором для сравнения скорости кода Python, особенно в современных многозадачных операционных системах, где потенциально десятки других процессов могут затормозить процессор за доли секунды, в то время как ваш скрипт выполняется в припадках и очередях. 'timeit' было бы лучше, так как это может усреднить периоды большой нагрузки, но все еще есть некоторая внутренняя неточность. – Kevin