Python如何将单值元组构成的列表转换为字符串列表
问题说明
你需要将存储大学名称的单元素元组列表,转换为纯字符串组成的新列表,原有代码存在以下问题无法实现目标:
- 变量定义顺序错误:调用处理函数时
schoolName还未定义,运行会触发NameError - 函数逻辑与入参不匹配:原有
convertTuple函数设计为拼接单个元组内的元素,却直接传入了整个元组列表,运行会触发类型错误 - 主程序写法不符合Python语法规范,Python的程序入口需要使用
if __name__ == "__main__":格式 - 存在冗余逻辑:每个元组内本身就只存储了一个大学名字符串,不需要做循环拼接操作,直接提取元组对应位置的元素即可。
正确实现方案
简洁写法(推荐)
使用列表推导式直接提取每个元组的第一个元素,代码简洁执行效率高:
# 原始元组列表 schoolName = [('Carthage',), ('Clarkson',), ('F&M',), ('GMU',), ('Georgia_Tech',), ('IIT',), ('Kenyon',), ('MIT',), ('McDaniel',), ('Michigan_State',), ('NIU',), ('Oklahoma_State',), ('Penn_State',), ('Princeton',), ('Purdue',), ('Radford',), ('Ramapo',), ('Randolph_Macon',), ('Rowan',), ('Tarleton',), ('TCU',), ('Texas_State',), ('Tulane',), ('UMASS_Lowell',), ('University_Of_Alabama',), ('UC_Berkeley',), ('UC_Riverside',), ('Maine',), ('UMBC',), ('UNO',), ('South_Alabama',), ('South_Carolina',), ('UT_Austin',), ('Toronto',), ('University_Of_Washington',), ('Ursinus',), ('Washington_State',), ('Wisconsin',)] # 提取每个单元素元组的0号索引值,生成纯字符串列表 school_list = [t[0] for t in schoolName] print(school_list)
函数封装写法
如果需要保留自定义函数的封装形式,可以参考如下实现:
def convert_tuple_list(tuple_list): str_list = [] for item in tuple_list: # 单元素元组的0位就是存储的大学名字符串 str_list.append(item[0]) return str_list if __name__ == "__main__": schoolName = [('Carthage',), ('Clarkson',), ('F&M',), ('GMU',), ('Georgia_Tech',), ('IIT',), ('Kenyon',), ('MIT',), ('McDaniel',), ('Michigan_State',), ('NIU',), ('Oklahoma_State',), ('Penn_State',), ('Princeton',), ('Purdue',), ('Radford',), ('Ramapo',), ('Randolph_Macon',), ('Rowan',), ('Tarleton',), ('TCU',), ('Texas_State',), ('Tulane',), ('UMASS_Lowell',), ('University_Of_Alabama',), ('UC_Berkeley',), ('UC_Riverside',), ('Maine',), ('UMBC',), ('UNO',), ('South_Alabama',), ('South_Carolina',), ('UT_Austin',), ('Toronto',), ('University_Of_Washington',), ('Ursinus',), ('Washington_State',), ('Wisconsin',)] school = convert_tuple_list(schoolName) print(school)
两段代码运行后都会得到由大学名称字符串组成的新列表,符合转换需求。
内容的提问来源于stack exchange,提问作者Alek
相关产品推荐
相关产品推荐

