【发布时间】:2017-12-27 00:08:27
【问题描述】:
Python 3.6
尝试编写一个返回字符串列表中的公共字符串的函数。例如。
>>>find_common_string(*['test 1', 'test 2', 'test 3'])
会回来
>>>'test '
我试图阻止它匹配equality(iterator)返回的第一个False之后的任何其他字符串,并在生成器表达式中使用StopIteration
这可以吗?我得到:#comparing a few long strings
TypeError: sequence item 130: expected str instance, type found
这是代码:
def equality(iterator):
iterator = iter(iterator)
try:
first = next(iterator)
except StopIteration:
return True
return all(first == rest for rest in iterator)
def find_common_string(*strings):
result = zip(*strings)
result = (i[0] if equality(i) else StopIteration for i in result)
return ''.join(result) #I tried to use this ^
【问题讨论】:
标签: python generator stopiteration