连接范围样序列与元素列表



我有一个类似的元组。

rows = []
r1 = ('one.csv', 230)
r2 = ('two.xls', 932)
rows.append(r1)
rows.append(r2)

我想在列表中的每个元组中添加第三个元素,这是一个用于SQL数据库中的整数密钥。我必须等到像这样填充行之前,才添加其他元素。在此示例中,我希望该元素看起来像('one.csv', 230, 0)('two.xls', 930, 1)。通常,这些钥匙室不会从一个开始。

这是一个简单的操作,但我想知道是否有更多的Pythonic方法可以做到这一点(即,不使用循环(。我的另一个想法是转换为熊猫的数据框架,但我认为下面的方法比转换到数据框架更好。

rows2 = []
count = 0
for r in rows:
    rows2.append(r + (count,))
    count += 1
[r + (i,) for i, r in enumerate(rows, 1)]

打印:

[('one.csv', 230, 1), ('two.xls', 932, 2)]

enumerate()的第二个参数是启动的索引。

这个

[(v1, v2, i) for i, (v1, v2) in enumerate(rows)]

使用Python 3,它可以短

[(*row, i) for i, row in enumerate(rows)]

最新更新