从列表中的最后一个元素中删除逗号

时间:2015-10-22 22:22:36

标签: python arrays list comma

我试图在没有最后一个逗号的情况下返回数字数组。 ex)

[['0,0,0,0,0'], ['1,1,1,1'], ['2,2,2'], ['3,3'], ['4']]

我一直回复

[['0,0,0,0,0,'], ['1,1,1,1,'], ['2,2,2,'], ['3,3,'], ['4,']]

定义如下:

def array(i):
    arraylist = []
    for num in range(0, i):
        arraylist.append([])
        if num is 0:
            print (str(0) + " ") * i
            arraylist[num].append((str(0)) * (i-(num)))
        else:
            print (str(num) + " ") * (i - (num))
            arraylist[num].append((str(num)+",") * (i-(num)))
    return arraylist

另外,如果你可以帮我拿出返回数组中的引号。

2 个答案:

答案 0 :(得分:1)

如果通过删除尾随逗号和引文来表示您想要返回一个数字列表列表,那么这就是您的函数需要做的事情:

def array(i):
    arraylist = []
    for num in range(0, i):
        arraylist.append((i - num) * [num])
    return arraylist

来自我的shell:

>>> print array(5)
[[0, 0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2], [3, 3], [4]]

如果你想要的是你以前拥有的但是没有尾随彗差,即内部列表中有一个数组的列表列表,只需在构建它之后从每个字符串中删除最后一个字符:

def array(i):
    arraylist = []
    for num in range(0, i):
        arraylist.append([])
        if num is 0:
            arraylist[num].append((str(0) + ',') * (i-(num)))
        else:
            arraylist[num].append((str(num)+",") * (i-(num)))
        arraylist[num][0] = arraylist[num][0][:-1]
    return arraylist

来自我的shell:

>>> print array(5)
[['0, 0, 0, 0, 0'], ['1, 1, 1, 1'], ['2, 2, 2'], ['3, 3'], ['4']]

答案 1 :(得分:0)

这有效:

>>> def array(i):
...     l = []
...     for num in xrange(i):
...         l.append([num] * (i - num))
...     return l

然后:

>>> array(5)
[[0, 0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2], [3, 3], [4]]