2024-04-26 11:39:51 发布
网友
有这样的名单
example = ['ab', 'cd']
我需要得到{'a': 'b', 'b': 'a', 'c': 'd', 'd': 'c'}
{'a': 'b', 'b': 'a', 'c': 'd', 'd': 'c'}
使用常规循环,我可以这样做:
result = {} for i,j in example: result[i] = j result[j] = i
问题:我怎样才能在一条线上做同样的事情?你知道吗
列表理解与词典更新
[result.update({x[0]:x[1],x[1]:x[0]}) for x in example]
另一种可能的解决方案:
dict(example + [s[::-1] for s in example])
[s[::-1] for s in example]创建一个所有字符串都反转的新列表。example + [s[::-1] for s in example]将列表组合在一起。然后dict构造函数根据键值对列表(每个字符串的第一个字符和最后一个字符)构建字典:
[s[::-1] for s in example]
example + [s[::-1] for s in example]
dict
In [5]: dict(example + [s[::-1] for s in example]) Out[5]: {'a': 'b', 'b': 'a', 'c': 'd', 'd': 'c'}
可以使用;分隔逻辑行
;
result=dict(example); result.update((k,v) for v,k in example)
但是当然
result=dict(example+map(reversed,example)) # only in python 2.x
或者
result=dict([(k,v) for k,v in example]+[(k,v) for v,k in example])
工作也是。你知道吗
列表理解与词典更新
另一种可能的解决方案:
[s[::-1] for s in example]
创建一个所有字符串都反转的新列表。example + [s[::-1] for s in example]
将列表组合在一起。然后dict
构造函数根据键值对列表(每个字符串的第一个字符和最后一个字符)构建字典:可以使用
;
分隔逻辑行但是当然
或者
工作也是。你知道吗
相关问题 更多 >
编程相关推荐