2024-04-29 11:17:40 发布
网友
在某些特殊情况下,我们可以在字典理解中使用多次迭代吗
例如,我们有以下格式的字符串:-
"6: 14, 11: 28, 17: 74, 22: 7, 38: 59, 49: 12, 57: 76, 61: 54, 81: 98, 88: 4"
因此,如果我想将6,11,17,22,38,......设置为键 和14,28,74,7...作为相应的值 如何通过词典理解来实现
6,11,17,22,38,......
14,28,74,7...
使用dict构造函数
dict
dict(x.replace(' ', '').split(':') for x in s.split(','))
或者使用dict构造函数和map函数
map
dict(map(lambda x: x.replace(' ', '').split(':'), s.split(',')))
输出
{'6': '14', '11': '28', '17': '74', '22': '7', '38': '59', '49': '12', '57': '76', '61': '54', '81': '98', '88': '4'}
词典理解与split()上的:结合应该足够好:
split()
:
dic = {elt.split(':')[0].strip(): elt.split(':')[1].strip() for elt in string.split(',')}
输出:
如果希望键和值作为int对象:
int
dic = {int(elt.split(':')[0].strip()): int(elt.split(':')[1].strip()) for elt in string.split(',')}
{6: 14, 11: 28, 17: 74, 22: 7, 38: 59, 49: 12, 57: 76, 61: 54, 81: 98, 88: 4}
可以使用^{}将字符串转换为字典:
import ast my_string = "6: 14, 11: 28, 17: 74, 22: 7, 38: 59, 49: 12, 57: 76, 61: 54, 81: 98, 88: 4" my_dict = ast.literal_eval(f"{{{my_string}}}")
使用
dict
构造函数或者使用
dict
构造函数和map
函数输出
词典理解与
split()
上的:
结合应该足够好:输出:
如果希望键和值作为
int
对象:输出:
可以使用^{} 将字符串转换为字典:
相关问题 更多 >
编程相关推荐