首页 > 解决方案 > 打印列表中每个项目的位置

问题描述

我正在尝试找到一种方法来打印列表中每个项目的位置。

例如:

example_lst = ['dog', 'cat', 'plant']

print(example_lst.index(*))

输出:

>>> ['dog, 0', 'cat, 1', 'plant, 2']

如果上面的示例令人困惑,请道歉。

无论如何,非常感谢任何帮助!

标签: python

解决方案


尝试紧凑列表理解:

[f'{v} {i}' for i, v in enumerate(example_lst)]

解释:

这将创建一个列表,其中每个元素都由其中的 for 循环确定。

在此循环中,i是循环所在的当前元素的索引,并且v是该元素的值。

for i, v in enumerate(example_lst)

然后将值和索引与

f'{v} {i}'

这称为 f 字符串(格式化字符串)。

虽然这可能看起来令人困惑,但实际上非常简单。

F-strings 提供了一种在字符串文字中嵌入表达式的方法,使用最小的语法。来源

要制作一个 f 字符串,只需在字符串之前放置一个 f。然后大括号内的任何内容都被评估为python代码。

所以,

f'{v} {i}'

只返回v + " " + i“dog 0”、“cat 1”或“plant 2”,具体取决于循环所在的位置。

因此,你得到你想要的结果。

['dog 0', 'cat 1', 'plant 2']

推荐阅读