如何以Pythonic方式生成含指定二元组的嵌套元组PROPERTY_PRICES
解决嵌套元组PROPERTY_PRICES的Pythonic实现
我来帮你搞定这个嵌套元组的生成问题,用最Pythonic的方式解决:
正确代码实现
PROPERTY_PRICES = tuple( (str(i), f"HUNDRED_{i//100}") for i in range(200, 2200, 200) )
代码解释
- 我们使用生成器表达式直接遍历
range(200, 2200, 200)中的每个数值i:- 第一个元素:通过
str(i)将数值转为字符串形式; - 第二个元素:利用Python的f-string格式化,
i//100是整数除法(因为所有i都是100的倍数,结果正好是你需要的系数),拼接成HUNDRED_前缀的字符串;
- 第一个元素:通过
- 最后用
tuple()将生成器表达式转换为外层元组,得到你预期的嵌套元组结构。
验证结果
生成的元组会是这样的形式(截取部分示例):
(('200', 'HUNDRED_2'), ('400', 'HUNDRED_4'), ('600', 'HUNDRED_6'), ..., ('2000', 'HUNDRED_20'))
原代码的问题分析
你之前的代码tuple( str(i) for i in range(200,2200,200) ),存在两个问题:
- 只生成了子元组的第一个元素,没有处理第二个元素的逻辑;
- 外层多套了一层元组,导致最终结构是
(('200', '400', ...),),不符合你需要的“每个元素都是子元组”的嵌套结构。
内容的提问来源于stack exchange,提问作者Radosław Hryniewicki
相关产品推荐
相关产品推荐

