打印列表显示单引号

时间:2015-09-29 16:29:43

标签: python list python-2.7

我有以下python代码片段:

LL=[]
for i in range(3):
    LL.append("a"+str(i))
print LL

输出如下:

['a0', 'a1', 'a2']

如何打印(使用print LL):

[a0, a1, a2]

即。没有引号? 如果我使用以下代码:

print "[",
for i in range (len(LL)-1):
    print LL[i] + ", ",
print LL[i+1]+"]"

这会打印[a0, a1, a2]

2 个答案:

答案 0 :(得分:12)

您正在打印列表的repr格式。请改用joinformat

>>> print "[{}]".format(', '.join(LL))
[a0, a1, a2]

答案 1 :(得分:-5)

这是一个对我有用的实用功能:

def printList(L):
    # print list of objects using string representation
    if (len(L) == 0):
        print "[]"
        return
    s = "["
    for i in range (len(L)-1):
        s += str(L[i]) + ", "
    s += str(L[i+1]) + "]"
    print s

这适用于任何对象的列表,例如,如果我们有一个如下所示的点类:

class Point:
    def __init__(self, x_crd, y_crd):
        self.x = x_crd
        self.y = y_crd
    def __str__(self):
        return "(" + str(self.x) + "," + str(self.y) + ")"

并有一个Point对象列表:

L = []
for i in range(5):
    L.append(Point(i,i))
printList(L)

输出如下:

[(0,0), (1,1), (2,2), (3,3), (4,4)]

而且,它符合我的目的。 感谢。