2024-04-25 22:07:41 发布
网友
做这样的事
s = "12:00 PM" hours, s = s.split(':') hours = int(hours)
是否有一个优雅的单行习惯用法在赋值之前对元组的第一个元素执行类型转换?你知道吗
这里有一个选择,但它是相当不和谐的
hours, s = (int(w) if w.isdigit() else w for w in s.split(':'))
可以从内嵌lambda函数返回元组,并调用它:
hours, rest = (lambda t: (int(t[0]),t[1]))(s.split(':'))
你可以做:
>>> s = "12:00 PM" >>> hour, the_rest=[(int(x),y) for x,y in [s.split(':')]][0] >>> hour 12
如果两次找到同一个字符并不违法,您还可以:
>>> hour, the_rest=int(s[0:s.find(':')]), s[s.find(':')+1:]
你的方法已经可以了。如果您不需要其他物品:
hours = int(s.split(":", 1)[0])
注意:.split()返回一个列表,而不是元组。你知道吗
.split()
您可以使用切片来提取前缀:
hours = int(s[:s.index(":")])
可以将对象绑定到新名称并在同一行中使用该名称,但这对于脑筋急转弯的人最有用:
t = a, *b = t[int(a)] = "0:rest".split(":")
可以从内嵌lambda函数返回元组,并调用它:
你可以做:
如果两次找到同一个字符并不违法,您还可以:
你的方法已经可以了。如果您不需要其他物品:
注意:
.split()
返回一个列表,而不是元组。你知道吗您可以使用切片来提取前缀:
可以将对象绑定到新名称并在同一行中使用该名称,但这对于脑筋急转弯的人最有用:
相关问题 更多 >
编程相关推荐