如何将一维字符串列表转换为(x,y)二元tuple组成的列表
解决方案
你原来的写法存在两个核心问题:一是没有把列表中的字符串元素转换为整数,二是没有实现两两分组的逻辑。
方法1:zip切片实现(最简洁)
直接对原列表做类型转换后,用切片分别取奇偶下标的元素配对即可:
w = ['25', '25', '10', '1', '50', '25', '140', '30'] # 先把所有字符串元素转为整数 num_list = [int(item) for item in w] # 分别取偶数下标、奇数下标元素配对 result = list(zip(num_list[::2], num_list[1::2]))
运行后result的值就是你需要的[(25, 25), (10, 1), (50, 25), (140, 30)]。
方法2:循环分组实现(逻辑更直观)
如果需要自定义分组逻辑,可通过步长为2的循环逐个取相邻元素处理:
w = ['25', '25', '10', '1', '50', '25', '140', '30'] result = [] for i in range(0, len(w), 2): # 每次取相邻的两个元素转整数后组成元组 pair = (int(w[i]), int(w[i+1])) result.append(pair)
内容的提问来源于stack exchange,提问作者Levin Kent
相关产品推荐
相关产品推荐

