0

我还有另一个问题,与我在这里遇到的问题有些相同-> Python double FOR loops without threading

基本上,我希望这里的第一个 for 循环枚举列表中的每个学校科目,然后在 print 函数中,我希望它打印该列表中的每个数字,所以它像 8 - 4 - 5 - 7等

    for item in store:
        print(str(item + "|" + (str((cflist[i]) for i in range(3))) + "\n" + ("-------------" * 7)))
...
Running the complete code makes a big grid filled with these things, but different
subjects each line. (NTL here)
-------------------------------------------------------------------------------------------
NTL|<generator object <genexpr> at 0x0000000003404900>
-------------------------------------------------------------------------------------------

我已经让代码部分工作,因此每个列表编号都在另一个主题行中,所以我会NTL|8.2在下一行ENT|5.7但我希望所有这些数字像NTL|8.2 - 5.7 - etc

编辑:完成!

-------------------------------------------------------------------------------------------
NTL|7.2 8.4 6.7 5.3 4.8
-------------------------------------------------------------------------------------------
4

1 回答 1

1

在生成器表达式上使用str将打印str生成器表达式的版本,而不是您期望的项目:

>>> str((x for x in range(3)))
'<generator object <genexpr> at 0xb624b93c>'

尝试这样的事情:

for item in store:
   strs = " ".join([cflist[i]) for i in range(3)])
   print(str(item + "|" + strs + "\n" + ("-------------" * 7)))
于 2013-06-24T19:11:54.000 回答