簡體   English   中英

如何刪除整數列表中的最后一個逗號?

[英]How to remove the last comma in a list of integers?

該列表應該得到每個數字的平方。 我已經設法做到了,但我需要刪除序列中的最后一個逗號。

當我使用此代碼時:

def multiplicator():
      for a in range(3, 20):
          b = (a*a)
          print(b, end=",")

multiplicator()

我得到:

9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,

您可以使用str.join在字符串之間添加一個分隔符,該分隔符不會在末尾添加額外的分隔符。

>>> ','.join(str(a*a) for a in range(3, 20))
'9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361'
def multiplicator():
    print_list = list()
    for a in range(3, 20):
        b = (a*a)
        print_list.append(b)
        print_list.append(',')
    for i in print_list[:-1] :
      print(i, end='')

multiplicator()

輸出 : 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

您可以保持循環並添加條件:

def multiplicator():
    for a in range(3, 20):
        b = (a*a)
        print(b, end="")
        if a<19: # if not the last element
          print(end=",") # print ","
    print() # print new line after everything

multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

您還可以使用三元條件來縮短代碼:

def multiplicator():
    for a in range(3, 20):
        b = (a*a)
        print(b, end="," if a<19 else "")

    print() # print new line after everything
multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

一個簡單的選擇是:

def multiplicator():
    for a in range(3, 19):
        print(a*a, end=',')  # directly a*a, no need for an intermediate variable
    print(19*19)

一個通用的解決方案是:

def multiplicator(n):
    for a in range(3, n-1):
        print(a*a, end=',')
    print((n-1)*(n-1))

輸出:

>>> multiplicator(20)
9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

筆記:

這是一種與您正在嘗試做的事情的簡單且類似的方法,但您絕對應該使用str.join()尋求@CoryKramer 的答案

def funcPattern(n):

# Base case (When n becomes 0 or negative)
if (n == 0 or n < 0):
    print(n, end=", ")
    return

print(n, end=", ")

# First print decreasing order
funcPattern(n - k)
if (n == m):
    print(n, end=" ")
elif (n != m):
    print(n, end=", ")

n = 10 m = nk = 2 funcPattern(n)

一種單行方式:

a = range(3, 20)
print(*[i**2 for i in a], sep=',')

列表是使用列表推導創建的,然后打印解壓后的列表(使用 * 運算符); ',' 是分隔符。

輸出將是:

9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM