用逗号分隔值

时间:2015-09-08 09:34:29

标签: python loops python-3.x for-loop

我有以下代码:

Buffer.BlockCopy(buffer, offst, allData, 0, fileSize);

我想打印for n in range(1, 101): if 100 % n == 0: print(n, end='') 的所有除数。但是,我希望它们在一行中(我通过在代码中放置100来完成)。最重要的是,我想要数字之间的逗号。我希望得到这样的输出:

end=''

1, 2, 4, 5, 10, 20, 25, 50, 100 由于它所处的循环不起作用。sep=','会起作用,但这会导致100之后的逗号,这不是我想要的。

5 个答案:

答案 0 :(得分:2)

您可以创建一个列表,然后使用str.join。例如:

lst = []
for n in range(1, 101):
    if 100 % n == 0:
        lst.append(str(n))
print(','.join(lst))

示例/演示 -

>>> lst = []
>>> for n in range(1, 101):
...     if 100 % n == 0:
...         lst.append(str(n))
...
>>>
>>> print(','.join(lst))
1,2,4,5,10,20,25,50,100

这也可以通过使用列表解析单行完成:

print(','.join([str(n) for n in range(1, 101) if 100 % n == 0]))

演示:

>>> print(','.join([str(n) for n in range(1, 101) if 100 % n == 0]))
1,2,4,5,10,20,25,50,100

答案 1 :(得分:1)

您需要将值存储到列表中,然后使用.join()。此外,请注意,您必须将列表中的元素转换为字符串。

my_list = []
for n in range(1, 101):
    if 100 % n == 0:
        my_list.append(n)

print(", ".join(str(x) for x in my_list))

答案 2 :(得分:0)

我没有足够的声誉向Anand S Kumar添加评论,但我想指出你不需要在联接内部列表,因为它可以采用生成器表达式。所以你也可以这样做:

>>> print(", ".join(str(n) for n in range(1, 101) if 100 % n == 0))
1, 2, 4, 5, 10, 20, 25, 50, 100

编辑:我发表评论说这更快。事实证明这是不正确的。

答案 3 :(得分:0)

试试这个

ls = []
for n in range(1, 101):
if 100 % n == 0:
    ls.append(str(n))

print (','.join(ls))

答案 4 :(得分:0)

您可以使用字符串格式

for n in range(1, 101):
if 100 % n == 0:
    print "%s," %n,

输出

1, 2, 4, 5, 10, 20, 25, 50, 100,