小编Van*_*ith的帖子

是否可以在Python单行三元条件运算符中放置中断

我想打破 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 python-2.x python-3.x

4
推荐指数
1
解决办法
1805
查看次数

为什么[]是[]在Python中给出False

我对此逻辑有些困惑。当以下内容在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)

python python-2.7 python-3.x

1
推荐指数
1
解决办法
62
查看次数

Python one liner来合并具有共同值的字典

我拥有的:

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)

笔记:

  1. 我需要将字典合并为一个字典。
  2. 它应该只合并那些在 a 和 b 中都有共同“名称”的人。
  3. 我想要 python one liner 的答案。

python list-comprehension python-3.x

-1
推荐指数
1
解决办法
122
查看次数