我正在尝试根据时间拆分python字符串。
我有几个与它们相关的变量:
因子1 = 10分钟
因子2 = 2分钟
因子3 = 8分钟
因子4 = 20分钟
因子5 = 7分钟
我希望能够让python根据时间将因子分成2个子串。例如,我只有19分钟所以我希望python将我的字符串分成:
string 1 = [“factor 1”,“factor 2”,“factor 5”]
字符串2将具有剩余因子。
我希望能够给python一个时间,并为它吐出一个最接近这个时间的字符串。
任何帮助都非常感激。
答案 0 :(得分:2)
好的,这段代码刚写完,你可以尝试一下:
我想你使用这样的变量:
factors = {"factor 1" : "10 minutes",
"factor 2" : "2 minutes",
"factor 3" : "8 minutes",
"factor 4" : "20 minutes",
"factor 5" : "7 minutes"
}
wantedTime = 19;
String_1={}
String_2={}
total = 0
for k,v in factors.items():## or factors.iteritems()
time = int(v.split(" ")[0])
if total+time <= wantedTime:
total +=time
String_1[k]=v
else:
String_2[k]=v
答案 1 :(得分:2)
看起来你想要时间总和等于19的组合。你可能想看看itertools
:
import itertools
factor_list=['factor 1 = 10 minutes',
'factor 2 = 2 minutes',
'factor 3 = 8 minutes',
'factor 4 = 20 minutes',
'factor 5 = 7 minutes']
resultlist=[]
for r in range(len(factor_list)):
for factor in itertools.combinations(factor_list, r):
if sum([int(item[item.index('=')+2:item.index(' minutes')]) for item in factor])==19:
print factor
('factor 1 = 10 minutes', 'factor 2 = 2 minutes', 'factor 5 = 7 minutes')