2015-11-04 4 views
-2

Созданная функция принимает в качестве аргумента список строки (длинный список длинных последовательностей). Первоначально, я хочу убедиться, что все строки равны. Конечно, я мог бы сделать это путем повторения всех последовательностей в цикле и проверки длины. Но мне интересно - есть ли способ сделать это быстрее/эффективнее?Утверждение равной длины элементов строки в списке

Я пробовал посмотреть модуль unittest, но я не уверен, что он подойдет здесь. В качестве альтернативы, я думал о создании списка len (string) всех строк, используя понимание списка, а затем проверяя, совпадают ли или элементы. Тем не менее, это, кажется, много усилий.

+1

Вы не можете сделать это меньше, чем 'O (n)', где 'n' - это длина вашего списка, потому что вы должны проверять каждую строку (если у вас нет дополнительной информации, упоминается). Однако 'len (string)' is 'O (1)' в Python, так что это не проблема. – jonrsharpe

+0

Большое спасибо jonrsharpe. Делает совершенный смысл. – Aleks

ответ

0
my_list = [ ... ] 
FIXED_SIZE = 100 # Lenght of each string which should be equal 
result = all(len(my_string) == FIXED_SIZE for my_string in my_list) 
+0

* «Я мог бы сделать это, итерируя все последовательности в цикле и проверяя длину. Но мне интересно - есть ли способ сделать это быстрее/эффективнее?» * – jonrsharpe

0

Это может вам помочь. Если все одинаковые длины, то будет True иначе False.

str_list = ['ilo', 'jak'] 
str_len = map(len,str_list) 
all(each_len == str_len[0] for each_len in str_len) 
Смежные вопросы