在python中为数字分配数字范围

时间:2014-10-22 00:45:59

标签: python string-formatting nested-lists

是否可以在python中为字母分配数字范围,而不进入循环,我试图打印由管道分隔的一行数字,这些行将是列表内容的索引,因此它取决于列表的长度,所以如果列表的长度是(4),输出将如下所示:


| | 0 | 1 | 2 | 3 |

我不能使用for循环sice,它将继续打印所有内容:

  

length = len(list)

     

表示范围(长度)中的i:

print (("|","%5s"%("|"),"%7d"%(i))    

我不能这样做,因为它会打印所有内容

我正在思考一些事情而没有循环它的自我,一些字母来保存这组数字,所以也许我会问这样的事情(我知道这不可能这样,但是,类似的东西可能吗?):

  

我在范围(长度)

然后只循环" i"使用while循环的值!

谢谢。

2 个答案:

答案 0 :(得分:1)

l = [1,2,3,4]
print("|" + "|".join([str(ind) for ind,ele in enumerate(l)]) + "|")
|0|1|2|3|

ind将是列表中每个元素的索引,只是str.join内容由管道分隔并且连接管道结束。

或使用范围和地图:

print("|" + "|".join(map(str,range(len(l)))) + "|")

答案 1 :(得分:0)

使用end的{​​{1}}参数来控制行结束行为。将print设置为空字符串将删除默认换行符;这样,多个end语句可以写在一行上。

示例:

print

输出:

print('| ', end='')
for i in range(4):
    print(str(i) + ' | ', end='')