如何创建一个将每个数字重复两次的数组?

How do I create an array that repeats every number twice?

我想在打印时创建一个具有以下结构的数组:

1: (10,20),

2: (20,30),

3: (30,40),

4: (40,50),

等等...

python 真的很新,所以任何帮助!使用 python 3.

取两个变量cnt1和cnt2

import numpy as np    
myList = []
cnt1=1
cnt2=2
for i in range(n):  #n is desired length
    myList.append([10*cnt1,10*cnt2])
    cnt1+=1
    cnt2+=1
myArray = np.array(myList)

您可以编写一个函数,该函数使用 range 获取一系列值,并使用列表理解(基本上是内联 for 循环)生成元组列表。像这样:

def get_repeated_list(max_n):
    values = range(10, max_n, 10)
    return [(i, i+10) for i in values]

用法示例:

>>> get_repeated_list(50)
[(10, 20), (20, 30), (30, 40), (40, 50)]

你可以简单地通过 python range 函数范围(开始,结束,步长)

final_lst = []
for i in range(10, 200, 10):
    final_lst.append([i, i+10])
print(final_lst)

输出

[[10, 20], [20, 30], [30, 40], [40, 50], [50, 60], [60, 70], [70, 80], [80, 90], [90, 100], [100, 110], [110, 120], [120, 130], [130, 140], [140, 150], [150, 160], [160, 170], [170, 180], [180, 190], [190, 200]]

::编辑::

for i in range(1, 10):
    print('%s: (%s,%s),'%(i, i*10, (i+1)*10))

输出

1: (10,20),
2: (20,30),
3: (30,40),
4: (40,50),
5: (50,60),
6: (60,70),
7: (70,80),
8: (80,90),
9: (90,100),

看起来您想要做的是将一个列表转换为另一个包含 previous/next 个元素的列表。

listA = [ 10 * i for i in range( N ) ]

listB = [ (listA[ i ], listA[ i + 1 ]) for i in range( len( listA ) - 1 ) ];

让我成为你的名单。里面有什么并不重要。使用 zip 创建一个新列表,其中包含所需的功能。 zip,将两个列表的元素匹配在一起。如果你 zip 一个列表本身,你将有一个新列表,第一个列表中的每个元素在其中重复两次。 l = [1, 2, 5, 11, 12] for element in zip(l, l): print(element)

输出:

(1, 1) (2, 2) (5, 5) (11, 11) (12, 12)