【问题标题】:Extract capital letters from tuples and lists从元组和列表中提取大写字母
【发布时间】:2021-06-20 06:44:02
【问题描述】:

给定输入:

names = [("George", "Washington"), ("Thomas", "Jefferson"), ("Abraham","Lincoln")]

预期输出:

['GW', 'TJ', 'AL']

===============================================

应从给定信息中提取大写字母并打印['GW', 'TJ', 'AL']

之前解决类似问题的时候,我把列表值完全转换成字符串。

转成字符串后,我打算把isupper转成for语句来收集返回的真值。

在那之后,我打算将它们切成两片并放入列表中。

不过据说不能用同样的方法,因为列表和元组是结合在一起的。

它说.join() 不可用。

我不知道如何解决这个问题。

请帮帮我。

#我英文不好,所以换了个翻译。

#English 可能很奇怪。对不起。

【问题讨论】:

  • 发布你的代码而不是描述它。
  • 试试:[''.join((x[0], y[0])) for x,y in names]。如果列表中的每个元组中总是有两个确切的项目,则该解决方案将起作用,并且它始终是第一个字符,即 upper
  • 这里不使用 join 来完成任务的示例:stackoverflow.com/questions/65934897/…

标签: python tuples


【解决方案1】:
names = [("George", "Washington"), ("Thomas", "Jefferson"), ("Abraham","Lincoln")]

print(["".join([j for j in "".join(list(k)) if j.isupper()]) for k in names])

结果

['GW', 'TJ', 'AL']

【讨论】:

    【解决方案2】:
            names = [("George", "Washington"), ("Thomas", "Jefferson"), ("Abraham","Lincoln")]
            lis=[]
            for  i in names:
                 k=""
                 for j in i:
                    k+=j[0]
                 lis.append(k)
             print(lis)
    

    【讨论】:

      【解决方案3】:

      您可以用更 Python 的方式编写函数,如下所示:-

      1. 使用map函数

         def convertStringWithMap(names):
             temp = list(map(lambda x: "".join(x), names))
             return list(map(lambda x: "".join(list(filter(lambda u: u.isupper(), x))), temp))
        print(convertStringWithMap(names))
        
      2. 更多使用列表理解的 Pythonic 解决方案:-

         def convertStringWithLC(names):
            temp = ["".join(x) for x in names]
            return ["".join([u for u in x if u.isupper()]) for x in temp]
        print(convertStringWithLC(names))
        

      如果我将输入视为names = [("GeorGe", "WashiNgton"), ("ThoMas", "Jefferson"), ("Abraham","Lincoln")] 并将其传递给上述任何函数,则输出将如下所示:-

      ['GGWN', 'TMJ', 'AL']

      您可以使用更多map()list comprehension 对象进一步缩短函数,但这会使代码有点笨拙

      【讨论】:

        猜你喜欢
        • 2023-01-20
        • 1970-01-01
        • 2018-04-19
        • 1970-01-01
        • 1970-01-01
        • 2014-02-13
        • 1970-01-01
        • 2011-07-19
        • 2018-04-07
        相关资源
        最近更新 更多