我有一个元组列表,它的日期和时间,从;到
<script src="https://rawgit.com/kangax/fabric.js/1.x/dist/fabric.js"></script>
<canvas id="c" width="400" height="400"></canvas>
<div>
<button id="rotate-left">Rotate left</button>
<button id="rotate-right">Rotate right</button>
</div>
<div id="log" class="log">
</div>
给出
print datetime
我想制作一个新列表,但仅限于'到'时间:
[(u'2017-09-10-14-00-35;2017-09-10-14-15-46',), (u'2017-09-10-13-45-23;2017-09-10-14-00-35',), (u'2017-09-10-13-30-05;2017-09-10-13-45-23',)]
我似乎无法将所有元素放在一起,到目前为止我已经
了['2017-09-10-14-15-46', '2017-09-10-14-00-35', '2017-09-10-13-45-23']
仅提供最后一个结果,而不是列表
for a in datetime:
for b in a:
enddates = [b[b.find(";")+1:] for b in a]
print enddates
没有轻易放弃,但是在这个
的兔子洞里答案 0 :(得分:0)
你不需要任何循环,只需选择第一个&amp;来自每个元组的唯一项目,并在其上执行str.partition
(获取第二个元素:最右边的元素),在您尝试的列表理解中
a = [(u'2017-09-10-14-00-35;2017-09-10-14-15-46',), (u'2017-09-10-13-45-23;2017-09-10-14-00-35',), (u'2017-09-10-13-30-05;2017-09-10-13-45-23',)]
enddates = [b[0].partition(";")[2] for b in a]
print(enddates)
结果:
['2017-09-10-14-15-46', '2017-09-10-14-00-35', '2017-09-10-13-45-23']
答案 1 :(得分:0)
使用str.split()
功能:
dt = [(u'2017-09-10-14-00-35;2017-09-10-14-15-46',), (u'2017-09-10-13-45-23;2017-09-10-14-00-35',), (u'2017-09-10-13-30-05;2017-09-10-13-45-23',)]
result = [d[0].split(';')[1] for d in dt]
print(result)
或与str.rfind()
函数相同:
...
result = [d[0][d[0].rfind(';')+1:] for d in dt]
输出:
['2017-09-10-14-15-46', '2017-09-10-14-00-35', '2017-09-10-13-45-23']