打印变量/动态字符串列表

时间:2015-11-03 19:18:40

标签: python list python-3.x

我有一个可变长度的字符串列表。我知道列表的最小长度是4.如果列表增长到4以上,如何以下列格式打印列表?

>>> strlist = ['a', 'b', 'c', 'd', 'f', 'g'] # Unknown length
>>> print ('%s %s %s %s' % (strlist [2], strlist [0], strlist [4], strlist [5]))

c a f g

如果列表扩展为

[..., 'h', 'i', 'j']

然后我希望输出

c a f g h i j

显然,如果列表扩展,我不能在我的打印功能中放入500“%s”,所以我希望有更好的方法。

2 个答案:

答案 0 :(得分:4)

我会先根据需要转换列表,然后使用str.join()

>>> print (" ".join([strlist[2]] + [strlist[0]] + strlist[4:]))
c a f g h i j

根据您的具体要求(您的问题并不完全清楚),转换代码可能需要不同。然而,整体"变换然后加入"模式仍然适用。

答案 1 :(得分:-1)

如果格式化不是问题,那么这应该有效:

// My answer assumes there is a constructor like this.
public Cell(int i) {
    listOfCells = new Cell[i];
}

public Cell deepCopy() {
    return deepCopy(this, new IdentityHashMap<Cell, Cell>());
}

private static Cell deepCopy(Cell original, Map<Cell, Cell> map) {
    if (original == null)
        return null;
    Cell copy = map.get(original);
    if (copy != null)
        return copy;
    int length = original.listOfCells.length;
    copy = new Cell(length);
    map.put(original, copy);
    for (int i = 0; i < length; i++)
        copy.listOfCells[i] = deepCopy(original.listOfCells[i], map);
    return copy;
}