如何用Python将给定的键值列表拆分为键列表和值列表
拆分字符串列表为键值列表的Python实现方法
原始输入
List = ['function = function1', 'string = string1', 'hello = hello1', 'new = new1', 'test = test1']
预期输出
键列表
KeyList = ['function', 'string', 'hello', 'new', 'test']
值列表
ValueList = ['function1', 'string1', 'hello1', 'new1', 'test1']
实现方案
方案1:基础循环遍历
逐个处理列表元素,按=分割并清理空格后分别收集:
List = ['function = function1', 'string = string1', 'hello = hello1', 'new = new1', 'test = test1'] KeyList = [] ValueList = [] for item in List: key, value = item.split('=') KeyList.append(key.strip()) ValueList.append(value.strip()) # 验证结果 print(KeyList) print(ValueList)
方案2:列表推导+zip解包
先通过列表推导生成键值元组序列,再用zip批量解包为两个列表:
List = ['function = function1', 'string = string1', 'hello = hello1', 'new = new1', 'test = test1'] # 拆分所有元素为键值对元组 key_value_pairs = [item.split('=') for item in List] # 解包为两个元组,再转换为列表并清理空格 KeyList, ValueList = zip(*key_value_pairs) KeyList = [k.strip() for k in KeyList] ValueList = [v.strip() for v in ValueList] # 验证结果 print(KeyList) print(ValueList)
方案3:一行式列表推导
直接用两个列表推导分别生成键列表和值列表,代码更简洁:
List = ['function = function1', 'string = string1', 'hello = hello1', 'new = new1', 'test = test1'] KeyList = [item.split('=')[0].strip() for item in List] ValueList = [item.split('=')[1].strip() for item in List] # 验证结果 print(KeyList) print(ValueList)
内容的提问来源于stack exchange,提问作者Mario
相关产品推荐
相关产品推荐

