我必须生成一个元组,在该元组中将是元组,其中第一个元素显示以字符串形式输入的 i 数字,第二个元素显示具有示例单词+ i 在文字上。
我知道我可以手动进行操作,但是我想以pythonic-way的方式进行操作:)
PROPERTY_PRICES = (
('200', 'HUNDRED_2'),
('400', 'HUNDRED_4'),
('600', 'HUNDRED_6'),
...
('2000', 'HUNDRED_20'),
)
我的代码,但只生成第一个元素“ 200”,“ 400”等,而不生成第二个元素。我无法在tuple()内的逗号后添加另一个forloop:
PROPERTY_PRICES = (
tuple( str(i) for i in range(200,2200,200) ),
)
答案 0 :(得分:4)
在tuple
内使用理解:
>>> property_prices = tuple((str(i*100), f"HUNDRED_{i}") for i in range(2,22,2)),
>>> property_prices
((('200', 'HUNDRED_2'), ('400', 'HUNDRED_4'), ('600', 'HUNDRED_6'), ('800', 'HUNDRED_8'), ('1000', 'HUNDRED_10'), ('1200', 'HUNDRED_12'), ('1400', 'HUNDRED_14'), ('1600', 'HUNDRED_16'), ('1800', 'HUNDRED_18'), ('2000', 'HUNDRED_20')),)
答案 1 :(得分:2)
PROPERTY_PRICES = (
str(i) for i in range(200,2200,200)
)
PROPERTY_NAMES = (
f'HUNDRED_{i}' for i in range(2,22,2)
)
print(tuple(zip(PROPERTY_PRICES, PROPERTY_NAMES)))
应该给你:
>>> (('200', 'HUNDRED_2'), ('400', 'HUNDRED_4'), ('600', 'HUNDRED_6'), ('800', 'HUNDRED_8'), ('1000', 'HUNDRED_10'), ('1200', 'HUNDRED_12'), ('1400', 'HUNDRED_14'), ('1600', 'HUNDRED_16'), ('1800', 'HUNDRED_18'), ('2000', 'HUNDRED_20'))
答案 2 :(得分:0)
我希望它对您有用
PROPERTY_PRICES = (
str(i) for i in range(200,2200,200)
)
PROPERTY_VALUES =(
"HUNDRED_"+str(i) for i in range(2,22,2)
)
list = tuple(zip(PROPERTY_PRICES,PROPERTY_VALUES))
print(list)