Skip to main content
 首页 » 编程设计

Python 设置差异不起作用

2025年05月04日19freeliver54

在下面的代码中;

all_digits = set(range(10)) 
print all_digits 
for i in range(102,167): 
    digits = set(k for k in (str(i))) 
    if len(digits) != 3: 
        continue 
    print "digits:", digits 
    remaining_digits = all_digits - digits 
    print "remaining:", remaining_digits 

数字集包含 3 个元素。我想要它们的一组差异,但是,remaining_digits 总是有所有数字。我在这里做错了什么? 这是我得到的输出示例;

set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
digits: set(['1', '0', '2']) 
remaining: set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
digits: set(['1', '0', '3']) 
remaining: set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
digits: set(['1', '0', '4']) 
remaining: set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
digits: set(['1', '0', '5']) 
remaining: set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
digits: set(['1', '0', '6']) 
remaining: set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
digits: set(['1', '0', '7']) 
remaining: set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
digits: set(['1', '0', '8']) 
remaining: set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 

请您参考如下方法:

all_digits 是一组十个整数 0 到 9,而 digits 是一组 1 - 字符串,如 "0"。由于类型不同,设置差异无法按预期工作。

为了让它像你想要的那样工作,要么使用所有整数,要么使用所有字符串,例如:

all_digits = set(map(str, range(10)))