Python:打印没有括号和单引号的列表?

Dan*_*Dan 5 python printing loops list

我有一个充满IP地址的列表.我想遍历列表并打印每个IP地址.当我尝试这样做时:

def printList(theList):
    for item in theList:
        print item
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

['8.0.226.5']
['8.0.247.5']
['8.0.247.71']
['8.0.249.28']
['8.0.249.29']
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一切,包括循环中的"print item [0]".我究竟做错了什么?

小智 6

列表中的每个项目本身都是一个单例列表.有propably没有原因-如果你不能命名一个,去删除它们(使用re.findre.findall或返回从返回的列表中的单个项目re.findall),他们只是多余的,并导致像在这种情况下麻烦了.

无论如何,print item[0]应该工作,因为它打印列表中的单个元素,并且与列表不同str(),它不会首先运行项目repr(这会导致引号并且如果字符串中有任何字符,则会转义不可打印的字符).一旦你摆脱了冗余的单例列表,print '\n'.join(items)也会起作用.

如果存在空列表,则代码会抛出错误theList.如果有一行recentFile不包含任何格式化为IP的行,则会返回一个空列表returnIP,如果有任何行comparisonFile(顺便说一句:你在开头用一个描述性名称打开它,但是再次打开它,再次没有描述性名称chechMatch)也不包含IP地址,你将得到另一个空列表,当然等于作为参数传递的空列表ip.因此,对于非IP名称recentFile,将添加空列表.如果您返回字符串而不是单例列表returnIP,则可以避免此整个麻烦None,当前行中没有IP时使用,并且compareFiles如果returnIP返回则跳过检查/追加None.