答案 0 :(得分:2)
“技巧”是在单独的行中打印列表的每个元素,这就是全部。
答案 1 :(得分:1)
“技巧”是"\n".join(li)
在显示屏上写下 li 的所有元素所需的时间比以下代码少:
for x in li:
print li
如果 li 的元素很少,那么差异就不会被察觉 但是用长列表测试差异,这很明显
“技巧”这个词有点过分了。
答案 2 :(得分:1)
打印类似无用的列表进行调试:
(1)如果任何列表项不是字符串,您将获得例外。
(2)你的标准输出可能无法显示字符串,导致异常或只是乱码。
(3)您不会看到(例如)制表符(\t
)和多个空格之间的区别。
好多了:
Python 2.x:print repr(li)
Python 3.x:print(ascii(li))
更新以下是Python 3.x上print(li')
可能发生的事情(上面的问题2):
>>> li = ['\u0404']
>>> print(li)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\python32\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u0404' in position
2: character maps to <undefined>
请注意,print li
“仅适用于Python 2.x,因为repr()
是隐式调用的。一般来说,应该print repr(thing)
。另请注意,{3.}}在Python 3.x上可能会失败,因为它隐式调用print(li)
,而不是repr()
更新2 如果您想查找列表中的所有非字符串,请明确执行,不要依赖“技巧”:
ascii()