当前位置: 首页 > 面试题库 >

在Python中,有没有一种优雅的方法可以以自定义格式打印列表而无需显式循环?

晋承嗣
2023-03-14
问题内容

我知道你能做

print str(myList)

要得到

[1, 2, 3]

你可以做

i = 0
for entry in myList:
  print str(i) + ":", entry
  i += 1

要得到

0: 1  
1: 2  
2: 3

但是,有没有一种方法类似于第一种方法而得到与最后一种方法类似的结果?

由于我对Python的了解有限(以及文档中的一些帮助),所以我的最佳成绩是:

print '\n'.join([str(n) + ": " + str(entry) for (n, entry) in zip(range(0,len(myList)), myList)])

它并不那么冗长,但是至少我在一个(复合)语句中得到了一个自定义字符串。你能做得更好吗?


问题答案:
>>> lst = [1, 2, 3]
>>> print('\n'.join('{}: {}'.format(*k) for k in enumerate(lst)))
0: 1
1: 2
2: 3

注意:您只需要了解列表理解或对生成器表达式的迭代 显式循环。



 类似资料:
  • 问题内容: 在Oracle中,可以使用: 仅显示日期的年和月部分。此外,您可以设置更改默认情况下返回日期的方式。 我知道在SQL Server中,您可以使用一组预定义的选项: 但是有没有一种选择可以给我与甲骨文一样的自由呢?最好是不需要我创建自定义函数的函数。 问题答案: 当前最好的选择是拥有CLR函数,该函数是.NET的包装器。 如果您不想使用单独的函数,则可以从片段中构建所需的字符串: 至于确

  • 我需要向用户显示以下座位并能够预订和取消预订。 我也尝试了unordered_map,但无论我做什么,我都无法使map以我想要的方式显示座位(1A,1B,1C,1D,1E)。 1A 1B 1C 1D 1E 2A 2B 2C 2D 2E... 尝试将座位名称更改为A1 B1 C1 D1...显然,我是C++新手。我知道地图是有序的,并且我知道使用unordered_map无法保证地图的显示方式。 我

  • 我们可以使用这些jvm标志来确定编译阈值,但是有没有一种方法可以在运行时以编程方式确定它?

  • 问题内容: 我有一个定制课程, 这个类不可iterable或indexable之类的。如果有的话 可能的话,我想保持这种状态。有什么可能吗 喜欢下面的工作吗? 让我想到这个的是 以及 列为 中的“公共顺序操作” [文档](https://docs.python.org/3/library/stdtypes.html#通用-顺序- 操作)。自 已考虑 对于同一个文档的序列类型,我认为 对“range

  • 问题内容: 我想通过迭代器重复遍历一个列表(N次),以免实际上不在内存中存储该列表的N个副本。是否有内置的或优雅的方法无需编写自己的生成器就能做到这一点? 理想情况下,itertools.cycle(my_list)将有第二个参数来限制它循环多少次……a,没有这种运气。 问题答案: import itertools itertools.chain.from_iterable(itertools.r

  • 问题内容: 我有一个类,每个方法都以相同的方式开始: 是否有一种很好的方法要求(希望每次都不要编写)该类中每个公共方法的部分? 问题答案: 我对优雅并不了解,但这是一个使用Java内置函数的有效实现,该实现 强制 所有方法调用均始于检查状态。 方法: 接口: 类: 正如其他人指出的那样,如果您只需要考虑几种方法,这似乎对您所需的东西就算是过大了。 也就是说,肯定有好处: 实现了某种关注点分离,因为