Python 3.x Python3.x isupper()表示使用列表理解的列表中的大写字母

Python 3.x Python3.x isupper()表示使用列表理解的列表中的大写字母,python-3.x,list-comprehension,Python 3.x,List Comprehension,有人能给我描述一下,我如何能得到与方法1相同的结果,但使用方法2吗?两者都使用列表理解 方法1 方法2 一些想法: 使用切片; 尝试下面的代码,它为您的方法2提供方法1中的输出 planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'] capital_letters = [planet[0] for planet in planets] >>>['M', '

有人能给我描述一下,我如何能得到与方法1相同的结果,但使用方法2吗?两者都使用列表理解

方法1

方法2

一些想法:

使用切片;
尝试下面的代码,它为您的方法2提供方法1中的输出

planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
capital_letters = [planet[0] for planet in planets]
>>>['M', 'V', 'E', 'M', 'J', 'S', 'U', 'N']

为什么你会期望同样的结果?你颠倒了逻辑,改变了输入。嘿!谢谢你的评论。这正是我决定在这里问一个问题的原因。你的问题是什么?考虑到你的第一种方法给出了你想要的结果,没有理由期望第二种方法会,也确实不会,有什么问题吗?嘿,@jornsharpe!谢谢你的跟进。不完全正确。我最初的问题是如何使用列表理解方法来切分第一个大写字母。在谷歌搜索了一段时间后,我发现它可以通过切片来完成,来自@Jai的答案证明了这一点。问题是,在某种程度上,现在仍然是,-如何轻松地实现列表理解,而无需进行艰苦的研究\思考数小时。答案很简单:练习。看来我已经在Jai的帮助下回答了我自己的问题=非常感谢。所以,切片是一个asnwer=。
planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
capital_letters = [planet for planet in planets if planet.islower()]
>>> []
planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
capital_letters = [planet[0] for planet in planets]
>>>['M', 'V', 'E', 'M', 'J', 'S', 'U', 'N']