Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-从字符串列表中删除小写或大写字母?_Python_List_Strip - Fatal编程技术网

Python-从字符串列表中删除小写或大写字母?

Python-从字符串列表中删除小写或大写字母?,python,list,strip,Python,List,Strip,所以我是一个noob程序员…不要讨厌我的代码。但我在这里有点挣扎。我正在尝试获取字符串列表,并找到大写字母数最少的字符串 我试过几种不同的方法。 -仅计算大写字母(不起作用) -删除小写字母,然后执行min(list,key=len),但这也不起作用 我被卡住了…这是我现在得到的 test_set = {'MOo', 'QHue', 'ReP', 'XiIV', 'oEe'} def fewest_unsolved(group): #shortest = min(group, k

所以我是一个noob程序员…不要讨厌我的代码。但我在这里有点挣扎。我正在尝试获取字符串列表,并找到大写字母数最少的字符串

我试过几种不同的方法。 -仅计算大写字母(不起作用) -删除小写字母,然后执行min(list,key=len),但这也不起作用

我被卡住了…这是我现在得到的

 test_set = {'MOo', 'QHue', 'ReP', 'XiIV', 'oEe'}

 def fewest_unsolved(group):
     #shortest = min(group, key = len)
     #return shortest

     for word in group:

         for i in word:
             if i == i.lower():
                 word.strip(i)
             shortest = min(group, key = len)
             return shortest   

fewest_unsolved(test_set)

现在,它只返回列表中最短的第一个字符串

为什么不将
min
与计算大写字母数的lambda一起使用呢

>>> data = {'MOo', 'QHue', 'ReP', 'XiIV', 'oEe'}
>>> min(data, key = lambda x: sum('A' <= c <= 'Z' for c in x))
'oEe'
>数据={'MOo','QHue','ReP','XiIV','oEe'}

>>>min(data,key=lambda x:sum('A'为什么不将
min
与计算大写字母数的lambda一起使用

>>> data = {'MOo', 'QHue', 'ReP', 'XiIV', 'oEe'}
>>> min(data, key = lambda x: sum('A' <= c <= 'Z' for c in x))
'oEe'
>数据={'MOo','QHue','ReP','XiIV','oEe'}

>>>min(数据,key=lambda x:sum('A'),如果您的目标由

我正在尝试获取字符串列表,并找到大写字母数最少的字符串

那么可能

从字符串列表中删除小写或大写字母

(例如,你的头衔)不是最好的方式。(这是“X-Y问题”的一个例子。)

这将实现前者(但不是后者):


但我认为使用排序后的
会给你提供更丰富的信息,让你可以检查联系(以牺牲时间和内存复杂性为代价)。

如果你的目标真的被

我正在尝试获取字符串列表,并找到大写字母数最少的字符串

那么可能

从字符串列表中删除小写或大写字母

(例如,你的头衔)不是最好的方式。(这是“X-Y问题”的一个例子。)

这将实现前者(但不是后者):


但我认为,使用排序后的
将为您提供更丰富的信息,允许您检查联系(以牺牲时间和内存复杂性为代价)。

您可以使用列表理解来完成此操作:

def lowercase_count(word):
  lowercase = [c for c in word if c.islower()]
  return len(lowercase)
了解小写单词的计数后,您可以执行以下操作:

def fewest_unsolved(group):
  least = lowercase_count(group[0])
  current = group[0]
  for word in group[1:]:
    count = lowercase_count(word)
    if count < least:
      least = count
      current = word
  return current
def最少未解决(组):
最小值=小写字母_计数(组[0])
当前=组[0]
对于组[1:]中的单词:
count=小写字母_count(word)
如果计数<最小值:
最少=计数
当前=字
回流
这比其他一些解决方案要详细一些,但我认为它可能更具可读性:)


哦,顺便说一句,如果你给它传递一个空列表,它就会崩溃,所以使用它时要小心。

你可以使用列表理解来做到这一点:

def lowercase_count(word):
  lowercase = [c for c in word if c.islower()]
  return len(lowercase)
了解小写单词的计数后,您可以执行以下操作:

def fewest_unsolved(group):
  least = lowercase_count(group[0])
  current = group[0]
  for word in group[1:]:
    count = lowercase_count(word)
    if count < least:
      least = count
      current = word
  return current
def最少未解决(组):
最小值=小写字母_计数(组[0])
当前=组[0]
对于组[1:]中的单词:
count=小写字母_count(word)
如果计数<最小值:
最少=计数
当前=字
回流
这比其他一些解决方案要详细一些,但我认为它可能更具可读性:)


哦,顺便说一句,如果你给它一个空列表,它会崩溃,所以使用它时要小心。

strip()
从字符串的开头和结尾删除字符,我认为它不会像你认为的那样。是的,我在尝试了几次之后才忘记了这一点。哈哈。
strip()
删除字符串开头和结尾的字符,我不认为它会像你认为的那样。是的,我忘记了,直到我尝试了几次。哈哈。是的,删除它们可能不是最好的方式。我想我只是把问题的标题写错了……对不起,是的,删除它们可能不是最好的方式。我想我只是用了一句话我问题的标题错了…对不起,好吧。我还没有了解lambda。但我会读更多。这是最简单的方法吗?是的。lambda只是函数的另一种形式-你可以声明函数
f
做同样的事,并传递它,而不是lambda。哦,好吧。还没有了解lambda。但是我会说这是最简单的方法吗?是的,lambda只是函数的另一种形式-你可以声明函数
f
,它做同样的事情,并传递它而不是lambda。