【问题标题】:Python, how to skip the last comma in a loop? [duplicate]Python,如何跳过循环中的最后一个逗号? [复制]
【发布时间】:2020-11-24 19:44:59
【问题描述】:

我得到了这个代码

for n in range(10,20):
 print(n, end='')
 print(', ', end='')

我明白了:

10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

如何删除最后一个逗号?一直在寻找 30 分钟没有运气。有没有什么简单的命令我可以在代码中添加最后一个字符来删除最后一个字符?

编辑:

解决方案:有不同的方法可以解决此问题,但任务是添加代码,而不是创建新代码,因此此解决方案最适合我。

for n in range(10,20):
 print(n, end='')
 if n >= 19:
    break
 print(', ', end='')

【问题讨论】:

  • 您可以使用', '.join(...) 以逗号连接字符串序列。所以你只需要一个字符串序列。
  • 虽然join 方法是解决这个问题的最pythonic 方法,但想想你如何编写一个通用算法来用任何语言解决这个问题。避免在项目序列上打印最终分隔符的最常见方法是维护打印项目的计数并将该计数与序列/列表的长度进行比较。当您的计数等于列表的大小时(取决于您如何初始化计数以及何时增加它),那么您将不再打印分隔符(在本例中为逗号)。

标签: python loops


【解决方案1】:

您可以创建一个项目列表,然后用“,”将它们连接起来。或使用生成器,如

>>> print(", ".join(str(n) for n in  range(10, 20)))
10, 11, 12, 13, 14, 15, 16, 17, 18, 19

【讨论】:

  • 或更多功能:print(', '.join(map(str, range(10, 20))))
  • @Matthias - 没错,但“功能性”并不意味着更好。 Guido 不喜欢 map 和朋友 “我认为删除 filter() 和 map() 是没有争议的;filter(P, S) 几乎总是写得更清晰,如 [x for x in S if P(x )], ..." (The fate of reduce() in Python 3000)。我同意这一点。恕我直言,理解和生成器是“pythonic”的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
相关资源
最近更新 更多