这是我的计划:
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]
我遇到的问题是我需要删除逗号,并且数字之间只有空格。这可能吗?
答案 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]