如何在for循环中调用列表?

时间:2013-07-10 01:18:17

标签: python-2.7

我陷入了一个失败的简单循环练习,通过列表并获得错误“TypeError:'list'对象不可调用”。 我有三个列表,有n个记录。我想从同一行的所有列表中写出第一条记录,并希望对n条记录重复此过程,这将导致n行。以下是我想要使用的列表:

lst1 = ['1','2','4','5','3']
lst2 = ['3','4','3','4','3']
lst3 = ['0.52','0.91','0.18','0.42','0.21']

istring=""
lst=0
for i in range(0,10): # range is simply upper limit of number of records in lists
    entry = lst1(lst)
    istring = istring + entry.rjust(11) # first entry from each list will be cat here
    lst=lst+1

任何创业公司都会非常有帮助。

3 个答案:

答案 0 :(得分:3)

这适用于任何规模的列表:

for i in zip(lst1, lst2, lst3):
    for j in i:
        print j.rjust(11),
    print

          1           3        0.52
          2           4        0.91
          4           3        0.18
          5           4        0.42
          3           3        0.21

答案 1 :(得分:2)

>>> lst1 = ['1','2','4','5','3']
>>> lst2 = ['3','4','3','4','3']
>>> lst3 = ['0.52','0.91','0.18','0.42','0.21']
>>> a = zip(lst1, lst2, lst3)
>>> istring = ""
>>> for entry in a:
...     istring += entry[0].rjust(11)
...     istring += entry[1].rjust(11)
...     istring += entry[2].rjust(11) + "\n"
... 
>>> print istring
          1          3       0.52
          2          4       0.91
          4          3       0.18
          5          4       0.42
          3          3       0.21

答案 2 :(得分:1)

尝试使用entry = lst1[lst]代替entry = lst1(lst)

()通常表示调用函数,而

[]通常表示访问某个元素。

列表不是函数。

此外,虽然您可以保留自己的索引,但for循环会使这不必要

x = [1,2,3,4,5,7,9,11,13,15]
y = [2,4,6,8,10,12,14,16,18,20]
z = [3,4,5,6,7,8,9,10,11,12]
for i in range(0,10):
   print x[i], y[i], z[i]

1 2 3
2 4 4
3 6 5
4 8 6
5 10 7
7 12 8
9 14 9
11 16 10
13 18 11
15 20 12