Python 打印格式化的值集列表

Python 打印格式化的值集列表,python,python-2.7,list,Python,Python 2.7,List,我正在使用set.difference比较两个列表。我希望列表b中列表a之外的每个值都打印在自己的行上,但是,集合不允许我这样做。代码和输出如下 import pprint a = [1,2,3,5,6,8,9,10] b = [13,452,3,4,5,6,7,8,9,10,11] c = [] difference = set(b).difference(a) c.append(difference) #print c for item in c: pprint.pprint (s

我正在使用set.difference比较两个列表。我希望列表b中列表a之外的每个值都打印在自己的行上,但是,集合不允许我这样做。代码和输出如下

import pprint

a = [1,2,3,5,6,8,9,10]
b = [13,452,3,4,5,6,7,8,9,10,11]
c = []
difference = set(b).difference(a)
c.append(difference)
#print c
for item in c:
    pprint.pprint (str(item))
我得到的输出是:

'set([4, 7, 11, 13, 452])'
>>> 
我想要的输出是:

>>>
4
7
11
13
452
>>>

我认为您犯了一个错误,您在
c
(也是一个列表)后面添加了
差异
(一个列表)。因此,当您在包含列表的
c
中循环时,您将打印出整个列表。而不是该列表中的单个值

在我下面的示例中,您直接将差异分配给
c
,因此
c
不包含包含包含您的值的列表,但
c
是包含您的值的列表

import pprint

a = [1,2,3,5,6,8,9,10]
b = [13,452,3,4,5,6,7,8,9,10,11]
c = set(b).difference(a)

for item in c:
    pprint.pprint (str(item))

我认为您犯了一个错误,您在
c
(也是一个列表)后面添加了
差异
(一个列表)。因此,当您在包含列表的
c
中循环时,您将打印出整个列表。而不是该列表中的单个值

在我下面的示例中,您直接将差异分配给
c
,因此
c
不包含包含包含您的值的列表,但
c
是包含您的值的列表

import pprint

a = [1,2,3,5,6,8,9,10]
b = [13,452,3,4,5,6,7,8,9,10,11]
c = set(b).difference(a)

for item in c:
    pprint.pprint (str(item))
编辑

没有注意到这个问题是用Python 2.7标记的。我会把它留给未来的谷歌人。但是,在Python2.7的更高版本中,可以使用来自未来导入打印功能的


通过执行
c.append(difference)
您正在创建一个包含整个
difference
集合的列表

这应该可以做到:

difference = set(b).difference(a)
for num in difference:
    print(num)
或使用
*
扩展的单个衬里:

print(*difference , sep='\n')
编辑

没有注意到这个问题是用Python 2.7标记的。我会把它留给未来的谷歌人。但是,在Python2.7的更高版本中,可以使用来自未来导入打印功能的


通过执行
c.append(difference)
您正在创建一个包含整个
difference
集合的列表

这应该可以做到:

difference = set(b).difference(a)
for num in difference:
    print(num)
或使用
*
扩展的单个衬里:

print(*difference , sep='\n')

您可以这样做:

difference = set(b).difference(a)
c.append(difference)
for item in c:
    print(*item, sep='\n')
但是
c
在您的代码中是多余的,因为它只是将一个集合附加到一个包含一个项目的列表中,因此,您可以使用删除,只需执行以下操作:

difference = set(b).difference(a)
print(*difference, sep='\n')

您可以这样做:

difference = set(b).difference(a)
c.append(difference)
for item in c:
    print(*item, sep='\n')
但是
c
在您的代码中是多余的,因为它只是将一个集合附加到一个包含一个项目的列表中,因此,您可以使用删除,只需执行以下操作:

difference = set(b).difference(a)
print(*difference, sep='\n')

是的,这是正确的,这是我想要的工作方式,谢谢你,先生。是的,这是正确的,它是我想要的工作方式,谢谢你,先生。set只与INTEGERS一起工作吗?除非我转换为字符串(--str()@NULL),否则它不能说unhashable。Dude set可以处理所有可散列的对象(整数、字符串、元组或任何其他实现
\uuuuhash\uuuuu
的对象,并且[希望]
\uuueq\uuuuu
)set只能处理整数吗?除非我转换为字符串(--str@NULL.Dude集合适用于所有可散列的对象(整数、字符串、元组或任何实现
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu