具有賦值的變數串列。我想從每對(每兩個)回傳所有可能的組合。
列印輸出是這對的名稱,以及它們的總和。
例如:
(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
正確的方法是什么?謝謝你。
uj5u.com熱心網友回復:
如果您使用 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/482193.html
上一篇:無法使用Dbeaver在SQLServer中執行while子句
下一篇:R中聚合資料幀的回圈
