我有一个列表
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'}
我在做什么错了?
答案 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)