【发布时间】:2018-08-20 13:54:12
【问题描述】:
我有一份这样的清单:
[`('__label__c091cb93-c737-4a67-95d7-49feecc6456c', 0.5), ('__label__96693d45-4dec-4b66-a2e2-621329d64b92', 0.498047)]`
我想像这样替换元组元素字符串值:
'__label__c091cb93-c737-4a67-95d7-49feecc6456c'到'c091cb93-c737-4a67-95d7-49feecc6456c'
我试试这个:
l = [('__label__c091cb93-c737-4a67-95d7-49feecc6456c', 0.5), ('__label__96693d45-4dec-4b66-a2e2-621329d64b92', 0.498047)]
j = []
for x in l:
for y in x:
if type(y) == str:
z = y.replace('__label__',"")
j.append((z, x[1]))
print(j)
输出:
[('c091cb93-c737-4a67-95d7-49feecc6456c', 0.5), ('96693d45-4dec-4b66-a2e2-621329d64b92', 0.498047)]
如何以pythonic方式优化我的代码以及更新元组值的任何其他方式,因为元组是不可变的
【问题讨论】:
-
某种形式的列表理解?通过使用它,我已经将单个函数的时间缩短了半秒。我无法对此进行测试,如果有错误,我很抱歉
[(z,x[1]) for x in l for y in x if type(y) == str]
标签: python-3.x list tuples