[英]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]?
您可以使用zip
和range
。
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
人们发布了不同的有效答案。 我只是想在这里再补充一点。 如果您不希望数据像您提到的那样在列表中显示,那么您可以在下面使用。
res = [f'{i}x{i+1}' for i in range (1, 100, 2)]
print(*res,end= " ")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.