1

我被困在一个失败的简单循环列表中,并收到错误“TypeError:'list' object is not callable”。我有三个包含 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

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

4

3 回答 3

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
于 2013-07-10T01:30:39.857 回答
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
于 2013-07-10T01:33:09.833 回答
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
于 2013-07-10T01:21:07.367 回答