<p>因此,这里已经有了很好的解决方案,但是如果您想为自己创建查找max的逻辑,如果不是max,则在不使用内置max()函数的情况下打印(“*******”),那么请看一下:</p>
<p>让我们分三步来解决您的问题:</p>
<p>出于测试目的,假设列表为:</p>
<pre><code>word_list=["Jo", "Jai", "Jen", "Jing", "Joeyr",
"Jess"]
</code></pre>
<blockquote>
<p>First step :</p>
</blockquote>
<p>假设您希望如果三个字符的长度相同,则打印(“*******”),那么首先我们必须过滤出列表中有多少字符具有相同的长度,如果超过三个字符的长度相同,则打印(“*****”)。现在进行筛选时,我们可以使用filter、lambda和list comprehension,但这里我将使用非常简单易读的方法:</p>
^{pr2}$
<p>干得好现在我们进入第二步:</p>
<blockquote>
<p>Second Step :</p>
</blockquote>
<p>我们已经检查过,如果一个列表有超过三个相同的len字符,那么将这个len添加到一个名为more_than_3的列表中,现在我们将看到这个问题的第二部分假设如果列表没有相同长度的字符,那么我们要在该列表中存储最长的单词字符,因此:</p>
<pre><code>longest_word=[] #we will store longest len word here
count_number = 0
for i in word_list:
if more_than_3:
print("******")
break
else:
if len(i) > count_number:
count_number = len(i)
word = i
</code></pre>
<p>现在我们已经完成了这个问题需要的所有逻辑部分,现在让我们做最后一个部分,检查是否有多个“超过”3的列表是空的而不是“打印”的最长单词,如果“多于”3个列表不为空而不是“打印”(“*******”),非常简单:</p>
<pre><code>try:
longest_word.append(word)
except NameError:
pass
if not more_than_3:
print("".join(longest_word))
</code></pre>
<p>所有组合:</p>
<pre><code>word_list=["Jo", "Jai", "Jen", "Jing", "Joeyr",
"Jess"]
count_number = 0
longest_word=[]
len_of_characters=[]
more_than_3=[]
for i in word_list:
len_of_characters.append(len(i))
for check in len_of_characters:
if len_of_characters.count(check)>2:
more_than_3.append(check)
for i in word_list:
if more_than_3:
print("******")
break
else:
if len(i) > count_number:
count_number = len(i)
word = i
try:
longest_word.append(word)
except NameError:
pass
if not more_than_3:
print("".join(longest_word))
</code></pre>