摆脱列表中的逗号

时间:2017-09-20 17:26:09

标签: python python-3.x

这是我的计划:

def Prob2( rows, columns ):
for i in range(1, rows+1):
    print(list(range(i, (columns*i)+1, i)))


Prob2( rows = int(input("Enter number of rows here: ")), columns = int(input("Enter number of columns here: ")))

基本上,它需要用户输入行和列,并根据这些输入生成以1开头的倍数列表。

例如,如果用户输入4行和5列,程序将输出如下内容:

[1, 2, 3, 4, 5]
[2, 4, 6, 8, 10]
[3, 6, 9, 12, 15]
[4, 8, 12, 16, 20]

我遇到的问题是我需要删除逗号,并且数字之间只有空格。这可能吗?

4 个答案:

答案 0 :(得分:4)

正如你的标题所指明:

  

删除列表中的逗号

我会给出它的一般版本。

>>> l = [1,2,3,4]
>>> l
[1, 2, 3, 4]

>>> s = ' '.join(str(x) for x in l)
>>> s
'1 2 3 4'

此处由于列表包含int,我们会在加入之前使用列表理解将每个人转换为str

假设列表包含str,我们可以直接执行:

>>> l = ['1','2','3','4']
>>> l
['1', '2', '3', '4']

>>> s = ' '.join(l)
>>> s
'1 2 3 4'

答案 1 :(得分:0)

可以将列表转换为字符串,并使用re.sub()方法删除逗号。

import re


def Prob2(rows, columns):
    for i in range(1, rows + 1):
        numbers = re.sub(",", "", str(range(i, (columns * i) + 1, i)))
        print(numbers)


Prob2(rows=int(input("Enter number of rows here: ")),
      columns=int(input("Enter number of columns here: ")))

输出:

[1 2 3 4 5]
[2 4 6 8 10]
[3 6 9 12 15]
[4 8 12 16 20]

答案 2 :(得分:0)

你可以这样做:

while (lastValue < half)
{
    addPrime(ArrayList<Integer> primes);
    lastValue = primes.get(primes.size()-1);
}

使用def Prob2( rows, columns ): for i in range(1, rows+1): print('['+', '.join(map(str, list(range(i, (columns*i)+1, i))))+']') Prob2( rows = int(input("Enter number of rows here: ")), columns = int(input("Enter number of columns here: "))) 是一个技巧,允许您将列表转换为字符串,其中' '.join()迭代该列表中的每个值并在其上应用map(str, <list>)函数。

答案 3 :(得分:0)

def Prob2( rows, columns ):
    for i in range(1, rows+1):
        print('['+' '.join(str(val) for val in range(i, (columns*i)+1, i))+']')

Prob2( rows = int(input("Enter number of rows here: ")), columns = int(input("Enter number of columns here: ")))

输出:

[1 2 3 4 5]
[2 4 6 8 10]
[3 6 9 12 15]
[4 8 12 16 20]