How To Be Pythonic:一行for

本文介绍了一行Python代码实现从字典中提取键值并转换为列表的方法,并展示了如何通过列表生成字典,同时提供了利用函数创建简单反射的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1行代码提取dict中的key和value,组成list:

 

conf_dict = {'host':'127.0.0.1', 'port':3600, 'user':'root', 'pswd':123456}	

	
key_list = [key for key in conf_dict]	

	
value_list = [conf_dict[key] for key in conf_dict]

 

同样dict也可以一行生成,如果满足你要求的话:

 

alpha_list = ['aaa', 'bbb', 'ccc', 'ddd']	

	
alpha_dict = {alpha: alpha for alpha in alpha_list}	
# 'aaa':'aaa'	

	
alpha_dict = {alpha: alpha.upper() for alpha in alpha_list}	
# 'aaa':'AAA'	

	
alpha_dict = {alpha: alpha*2 for alpha in alpha_list}	
# 'aaa':'aaaaaa'

有一定局限性,因为value和key要有某种关联。

 

活学活用的话,可以配合函数使用,生成一个函数名到函数的映射。来实现一个简单反射。

 

# 假设有一个list,里面存放的是函数	
def test_a():	
    pass	
def test_b():	
    pass	
...	
fun_list = [test_a, test_b, test_c, test_d]	
fun_dict = {fun.__name__: fun for fun in fun_list}	
# 'test_a':test_a	

	
# 调用	
fun_dict['test_a']()

 

当然Python语法天生支持反射,只是语法稍显繁琐,没有特别需求的话,自己像这样简单弄一个就行啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

果冻虾仁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值