【问题标题】:Python arranging strings in a list [closed]Python在列表中排列字符串[关闭]
【发布时间】:2018-04-10 15:25:49
【问题描述】:

我是python编程语言的新手,最近刚刚遇到这个问题,我很想知道如何解决它

这是输入:

list = ["Sam-11,Mark-10,Mike-14","Martha-12,Emma-9,Kyla-13"]

输出应该是这样的:

Mark-10, Emma-9 

// 打印列表中两个字符串中年龄最小的名字,包括他们的年龄

【问题讨论】:

  • 尝试查找一些关于列表操作的教程。您可能会发现一些有用的列表方法可用于对元素进行排序。
  • 在寻求答案之前做一些尝试
  • 欢迎来到 SO!请阅读how to ask 指南,了解提出好问题的技巧。
  • 离题了,但我真的很困惑这个列表的含义。你更喜欢字典而不是列表吗?字典基本上是一个键:值对,其中一个键链接到一个值。因此,您可以将“标记”链接到 10 的值
  • 第一个字符串代表男孩和他们的年龄,然后第二个字符串代表女孩和他们的年龄。

标签: python


【解决方案1】:

这是一个直接的解决方案:

print(", ".join( [ min(each_element.split(","),key = lambda x:int(x.split("-")[1])) for each_element in list_obj ] ))

您在逗号上拆分每个元素,然后根据辅助参数找到结果列表的最大值,然后根据需要加入它。

【讨论】:

  • 这在新开发者的眼中并不简单...... baha
  • 同样答案是错误的。这将打印 "Mike-14, Emma-9" 而不是 "Mark-10, Emma-9"。这是因为您在应该使用 min 时使用了 max,并且您正在执行字典排序而不是整数排序。
  • 谢谢 Pault,我没有注意到他要求的最低限度,是的,谢谢你指出我的错误。
  • 现在它可以工作了,但我不会说它很简单——显然你自己也遇到了麻烦。您可以通过为初学者提供更详细的解释来改进此答案。这条线也太长了,IMO。
  • 您的代码可以正常工作,非常感谢...现在我正试图为未来的 sml 找出其背后的逻辑
猜你喜欢
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多