对元组求和时输出变量名
Output variable names when summing a tuple
具有指定值的变量列表。我想 return 每对(每两个)的所有可能组合。
打印输出的是对的名称,以及它们的总和。
例如:
(Mike, Kate) 7
我在下面试过了。结果出来了,但不是对的名字:
import itertools
Mike = 3
Kate = 4
Leo = 5
David = 5
data = [Mike, Kate, Leo, David]
for L in range(0, len(data)+1, 2):
for subset in itertools.combinations(data, L):
if len(subset) == 2:
print (subset,sum(subset)) ---- (3, 4) 7
# print (''.join(subset),sum(subset)) ---- doesn't work
正确的做法是什么?谢谢。
如果您使用 dict 而不是命名变量,则可以通过字典查找轻松地将名称本身转换为 int 值。
import itertools
data = {
'Mike': 3,
'Kate': 4,
'Leo': 5,
'David': 5,
}
for subset in itertools.combinations(data, 2):
print(subset, sum(data[name] for name in subset))
('Mike', 'Kate') 7
('Mike', 'Leo') 8
('Mike', 'David') 8
('Kate', 'Leo') 9
('Kate', 'David') 9
('Leo', 'David') 10
具有指定值的变量列表。我想 return 每对(每两个)的所有可能组合。
打印输出的是对的名称,以及它们的总和。
例如:
(Mike, Kate) 7
我在下面试过了。结果出来了,但不是对的名字:
import itertools
Mike = 3
Kate = 4
Leo = 5
David = 5
data = [Mike, Kate, Leo, David]
for L in range(0, len(data)+1, 2):
for subset in itertools.combinations(data, L):
if len(subset) == 2:
print (subset,sum(subset)) ---- (3, 4) 7
# print (''.join(subset),sum(subset)) ---- doesn't work
正确的做法是什么?谢谢。
如果您使用 dict 而不是命名变量,则可以通过字典查找轻松地将名称本身转换为 int 值。
import itertools
data = {
'Mike': 3,
'Kate': 4,
'Leo': 5,
'David': 5,
}
for subset in itertools.combinations(data, 2):
print(subset, sum(data[name] for name in subset))
('Mike', 'Kate') 7
('Mike', 'Leo') 8
('Mike', 'David') 8
('Kate', 'Leo') 9
('Kate', 'David') 9
('Leo', 'David') 10