2014-11-06 78 views
0

我有这样的代码:PYTHON:列表的打印X项目

U = [1,2,3,4,5,6,7,8,9,10,11,12] 

def bla(anzahl): 
    zaehlwerk = 0 
    while zaehlwerk < anzahl: 
     for x in U: 
      zaehlwerk = zaehlwerk +1 
      print x 

我的查询:

bla(3) 

我希望现在我会得到第3个列表项,而是我得到整个列表。

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 

我试图调试,因为我认为也许计数器不会工作,但它确实。但那么我的错误在哪里?

+0

对于U中的x为U中的所有x运行并且while循环仅在第一次时被检查。获取一个调试器/ IDE,并逐行执行一行代码。 – 2014-11-06 20:01:14

+0

这就是我所做的(如上所述),因为我认为计数器是错误的。我怎样才能让while循环再次检查? – bngschmnd 2014-11-06 20:02:26

+0

在这样的情况下,只需按顺序查看每一行代码,从字面上理解它,然后就可以知道它了....即“当我 LukeP 2014-11-07 19:11:39

回答

0
for x in U: 

是最里面的循环。这是确保你迭代一切。

正如你可以修改你的代码看起来像

def bla(anzahl): 
    zaehlwerk = 0 
    while zaehlwerk < anzahl: 
     x = U[zaehlwerk] 
     zaehlwerk = zaehlwerk +1 
     print x 

这会为你想要的工作。但更简洁将是使用类似于

for index in range(len(anzahl)): 
    print U[index] 
for index in range(len(anzahl)): 
    print U[index] 
5

使用切片:

>>> U = [1,2,3,4,5,6,7,8,9,10,11,12] 
>>> U[:3] 
[1, 2, 3] 

U[stat-index:end-index],你会得到从起始索引元素少了一个最终的索引,如上面的例子

>>>U[2:6] 
[3, 4, 5, 6] 

你需要做的就是这一点使用切片:

def print_list(n): 
    print "\n".join(map(str,U[:n])) 
print_list(3) 

输出:

1 
2 
3 
+2

这里不需要开始'0'。 – 2014-11-06 20:02:48

+0

切片不会帮助我,因为这只是给我一个新的列表。 – bngschmnd 2014-11-06 20:16:14

+0

@bngschmnd当你得到清单时,你可以打印它 – Hackaholic 2014-11-06 20:21:56