Python 在列表中选择字符串的一部分
我正在写一个程序,按照行星相对于太阳的位置降序显示列表中行星的名称 正如你在下面看到的,我已经设法找出了如何根据不同行星相对于太阳的位置(字符串中的第三个值)对它们进行排序,但我无法找出如何删除数字并只显示文本,因为它显示了列表中的整个字符串,而不仅仅是我理想中想要的行星名称。有什么想法吗Python 在列表中选择字符串的一部分,python,Python,我正在写一个程序,按照行星相对于太阳的位置降序显示列表中行星的名称 正如你在下面看到的,我已经设法找出了如何根据不同行星相对于太阳的位置(字符串中的第三个值)对它们进行排序,但我无法找出如何删除数字并只显示文本,因为它显示了列表中的整个字符串,而不仅仅是我理想中想要的行星名称。有什么想法吗 planet_tuples=[ ("Mercury",75,1), ("Venus",460,2), ("Mars",140,4), ("Earth",510,3),
planet_tuples=[
("Mercury",75,1),
("Venus",460,2),
("Mars",140,4),
("Earth",510,3),
("Jupiter",62000,5),
("Neptune",7640,8),
("Saturn",42700,6),
("Uranus",8100,7),
]
s=(sorted(planet_tuples,key=lambda planet: planet[2],reverse=True))
s.remove(planet_tuples[])
print (s)
您可以使用
列表理解提取元组的第一个元素
:
print ([x[0] for x in s])
结果:
['Neptune', 'Uranus', 'Saturn', 'Jupiter', 'Mars', 'Earth', 'Venus', 'Mercury']
你只想知道名字<代码>[i[0]对于s中的i]
在您排序了可能的重复项后,该项工作正常,谢谢!我不明白为什么我没早点想到@克里斯,我的错,当我写我的问题时,我一定没有在类似的问题中看到这一点,谢谢!太好了<代码>快乐编码。sum(s,())
为什么建议使用反模式?切勿使用sum
连接序列。这就是O(N^2)。使用itertools.chain
或展平列表理解。@juanpa.arrivillaga我只是尝试其他替代方法,可能不是个好主意,将其删除。展平然后切片并不疯狂-可以是O(N),但如果展平操作是O(N^2),则不是