[英]Finding the shortest string in a string of words in python
我想編寫一個函數,該函數將返回單詞字符串中最短字符串的長度。 示例:“我吃蘋果”將返回1,因為“ I”是短路的字符串。 這就是我所做的,但是mincount既不遞增,也不在每個字符串的末尾設置為0。 怎么了
def find_short(s):
min=99
for i in s:
mincount = 0
for j in i:
print(j)
mincount += 1
print(mincount)
if (mincount < min):
min = mincount
return min
line = "I eat apples"
mins = min(len(word) for word in line.split())
print(mins)
line.split()
會將行拆分為單詞列表,然后僅查找最小長度
如果您想要快速簡便的解決方案,我會建議@pramod的答案,但是我將使用您的函數並向您顯示發生了什么。
def find_shortest(string):
smallest_length = 99
for word in string.split():
current_length = 0
for letter in word:
current_length += 1
if current_length < smallest_length:
smallest_length = min_length
return smallest_length
min
已重命名。 由於min
已經定義為一個函數,因此可能會引起問題。 for word in string
中for word in string.split()
更改for word in string
for word in string.split()
。 默認情況下, split()
根據空白將字符串分成一個列表。 以前,您只是簡單地遍歷每個字符,這是有問題的。 注意: smallest_length
設置為99假定最小單詞的長度為99個字符或更少。 對於較大的單詞,請將其設置得較高。
您可以通過鍵功能使用min
:
# split the string by spaces and pick the min based on the lenght of splitted string
# Example:
string = "I eat apples"
final = min(string.split(), key = lambda x: len(x))
print(final)
# >>> I
確定文本中最小單詞的長度的功能
def lenmin(text):
return len(min(text.split()))
lenmin("I eat apples")
這將返回1
使用lambda
>>> lenmin = lambda t: len(min(t.split()))
>>> lenmin("you eat apples")
2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.