我想打破 python oneliner 的其他部分的循环。
value='4,111,010.00400'
for i in value[-1:value.rfind('.')-1:-1]:
if i in ('0', '.'):
value=value[:-1]
else:
break
Run Code Online (Sandbox Code Playgroud)
我编写了这段代码并尝试将其转换为 python oneliner。所以这样写
for i in value[-1:value.rfind('.')-1:-1]:
value=value[:-1] if i in ('0', '.') else break
Run Code Online (Sandbox Code Playgroud)
但无法在该衬里内放置断裂点。是否有任何替代方法来放置它,或者是否可以在 python oneliner 中实现上述目标?
我对此逻辑有些困惑。当以下内容在python中为True时
print('' is '') #True
print('' == '') #True
print([] == []) #True
print({} == {}) #True
Run Code Online (Sandbox Code Playgroud)
但是为什么这些陈述会给出False?
print([] is []) #False
print({} is {}) #False
Run Code Online (Sandbox Code Playgroud) 我拥有的:
a=[{'name':'a','vals':1,'required':'yes'},{'name':'b','vals':2},{'name':'d','vals':3}]
b=[{'name':'a','type':'car'},{'name':'b','type':'bike'},{'name':'c','type':'van'}]
Run Code Online (Sandbox Code Playgroud)
我试过的:
[[i]+[j] for i in b for j in a if i['name']==j['name']]
Run Code Online (Sandbox Code Playgroud)
我得到了什么:
[[{'name': 'a', 'type': 'car'}, {'name': 'a', 'vals': 1}], [{'name': 'b', 'type': 'bike'}, {'name': 'b', 'vals': 2}]]
Run Code Online (Sandbox Code Playgroud)
我想要的是:
[{'name': 'a', 'type': 'car','vals': 1},{'name': 'b', 'type': 'bike','vals': 2}]
Run Code Online (Sandbox Code Playgroud)
笔记: