使用for循环python创建简单表

时间:2018-11-21 13:34:34

标签: python-3.x for-loop

我只是尝试按照以下代码创建简单表

n = 0
x = ["list1","list2","list3","list4"]
for y in x:
    n+=1
    h="{}. {}".format(n,y) + '   ' + "{}. {}".format(n+n,y)
    print(h)

我得到的输出

1. list1  5. list1
2. list2 6. list2
3. list3  7. list3
4. list4  8. list4

我应该怎么做才能得到这样的输出

1. list1  3. list3
2. list2  4. list4

我才刚开始,很困惑,无法解决它,感谢谁能回答我的问题。

2 个答案:

答案 0 :(得分:0)

无论列表多长,下面的内容都会为您提供所需的信息。可能有比这更有效的方法,但是这种方法将其分解为各个部分,因此从本质上讲,您需要在列表中找到中间点,并在右侧打印相应的值。

x = ["list1","list2","list3","list4", "list5",]

if len(x) % 2 == 1 :
    half = int((len(x) + 1) / 2)
else:
    half = int(len(x) / 2)

for i in range(half):
    if half > len(x) / 2:
        if i == half - 1:
            h = "{}. {}".format (i + 1 , x[i])
        else:
            h = "{}. {}".format (i + 1 , x[i]) + '   ' + "{}. {}".format (half + (i + 1) , x[int (len (x) / 2) + i + 1])
    else:
        h = "{}. {}".format (i + 1 , x[i]) + '   ' + "{}. {}".format (half + (i + 1), x[int (len (x) / 2) + i])
    print(h)

我还考虑了元素数量奇数的列表,例如上述x的示例,它将为您提供以下输出

1. list1   4. list4
2. list2   5. list5
3. list3

答案 1 :(得分:0)

像这样吗?

import math
x = ["list1","list2","list3","list4", "list5", "list6", "list7"]
y = math.ceil(len(x)/2)
for i, j in enumerate(x[:math.ceil(len(x)/2)], start=1):
    try:
        print("{}. {}".format(i, j) + '     '"{}. {}".format(i+math.ceil(len(x)/2), x[y]))
    except:
        print("{}. {}".format(i, j))
    y +=1

输出:

1. list1     5. list5
2. list2     6. list6
3. list3     7. list7
4. list4