使用Python打印一个列表,其中值彼此之间有特定距离

时间:2019-05-09 09:16:24

标签: python-3.x

我有一个列表

A = ['A','B','C','D','E','F','G','H']

如果用户输入x = 4,那么我需要一个输出,该输出显示彼此相距4距离的每个值。 如果在打印彼此相距4距离的值(即{'A','E'})后从'A'开始,则代码应迭代并从'B'开始以从那里打印所有值,即:{' B','F'}

一个号码不能超过一个组

由于我是python的新手,所以任何帮助将不胜感激。

这就是我所做的

x = input("enter the number to divide with: ")
A = ['A','B','C','D','E','F','G','H']

print("Team A is divided by " +x+ " groups")
print("---------------------")

out = [A[i] for i in range(0, len(A), int(x))]
print(out)

当用户输入x = 4时,我的代码仅打印以下内容

{'A', 'E'}

但是我需要它看起来像下面的

{'A', 'E'}
{'B', 'F'}
{'C', 'G'}
{'D', 'H'}

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

使用zip

out = list(zip(A, A[x:]))

例如:

x = 4 # int(input("enter the number to divide with: "))
A = ['A','B','C','D','E','F','G','H']

print(f"Team A is divided by {x} groups")
print("---------------------")

out = list(zip(A, A[x:]))
print(out)

输出:

[('A', 'E'), ('B', 'F'), ('C', 'G'), ('D', 'H')]

这里有live example

如果您想保持理解力:

out = [(A[i], A[i+x]) for i in range(0, len(A)-x)]

答案 1 :(得分:0)

**您可以在下面找到我的答案。

def goutham(alist):
    for passchar in range(0,len(alist)-4):
        i = alist[passchar]
        j = alist[passchar+4]
        print("{"+i+","+j+"}")
        j = 0
 alist = ['a','b','c','d','e','f','g','h'] 
 goutham(alist)