簡體   English   中英

如何打印 [1x2、3x4、5x6、7x8、...、99x100]

[英]How to print [1x2, 3x4, 5x6, 7x8, …, 99x100]

我嘗試使用 for 循環打印 [1x2, 3x4, 5x6, 7x8, ..., 99x100]

這是我的代碼。 我知道line4有問題。

a=[]
for i in range(1,100,2):
    for j in range(i+1,i+2,1):
        a.append(i,"*",j)
print(a)

我可以使用以下代碼打印 1x2, 3x4, 5x6, 7x8, ..., 99x100 ,但它是字符串而不是列表

for i in range(1,100,2):
    for j in range(i+1,i+2,1):
        print(i,"*",j,",",end="")

我應該怎么做才能打印出 [1x2, 3x4, 5x6, 7x8, ..., 99x100]?

您可以使用ziprange

res = []
# list(zip([1,3], [2,4])) -> [(1, 2), (3, 4)]
# ------------- range(start, end, step) --------
for o, e in zip(range(1,100,2), range(2,101,2)):
    res.append(f'{o}x{e}')
print(res)

輸出:

['1x2', '3x4', '5x6', '7x8', '9x10', '11x12', '13x14', '15x16', '17x18', '19x20', '21x22', '23x24', '25x26', '27x28', '29x30', '31x32', '33x34', '35x36', '37x38', '39x40', '41x42', '43x44', '45x46', '47x48', '49x50', '51x52', '53x54', '55x56', '57x58', '59x60', '61x62', '63x64', '65x66', '67x68', '69x70', '71x72', '73x74', '75x76', '77x78', '79x80', '81x82', '83x84', '85x86', '87x88', '89x90', '91x92', '93x94', '95x96', '97x98', '99x100']

您可以像這樣更改您的第一個代碼塊:

a=[]
for i in range(1,100,2):
    for j in range(i+1,i+2,1):
        # use an 
        a.append(f"{i}x{j}")
print(a)

結果是一個字符串列表

['1x2', '3x4', '5x6', '7x8', '9x10', … '97x98', '99x100']

或者你可以寫在一行中(這樣會更有效率):

res = [f'{o}x{e}' for o, e in zip(range(1,100,2), range(2,101,2))] # ~27.4 µs

res = []
for o, e in zip(range(1,100,2), range(2,101,2)):
    res.append(f'{o}x{e}') # ~43.5 µs

使用列表推導、f-string 和一個范圍計數器的更簡潔的代碼:

res = [f'{i}x{i+1}' for i in range (1, 100, 2)]
print(res)

在線嘗試!

人們發布了不同的有效答案。 我只是想在這里再補充一點。 如果您不希望數據像您提到的那樣在列表中顯示,那么您可以在下面使用。

res = [f'{i}x{i+1}' for i in range (1, 100, 2)]
print(*res,end= " ")

暫無
暫無

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

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