下面是一个(工作的)尝试组成元组,使第一个元组的第一个成员从第二个元组中提取,其余的从第一个元组中提取。
just_no = ('Gruyere', 'Danish Blue', 'Cheshire')
missing = ('Caerphilly', 'Red Windsor', 'Camembert')
shop_window = tuple(tuple(no if i!=j else gone
for i, no in enumerate(just_no))
for j, gone in enumerate(missing))
print(shop_window, "\nWhat a senseless waste of human life.")
# (('Caerphilly', 'Danish Blue', 'Cheshire'), ('Gruyere', 'Red Windsor', 'Cheshire'), ('Gruyere', 'Danish Blue', 'Camembert'))
# What a senseless waste of human life.它起了很大作用,我想知道是否有一个更优雅的解决方案,可能使用迭代工具?
发布于 2019-09-15 10:19:09
基于Python索引/切片的一行
just_no = ('Gruyere', 'Danish Blue', 'Cheshire')
missing = ('Caerphilly', 'Red Windsor', 'Camembert')
shop_window = tuple(just_no[:i] + (gone,) + just_no[i+1:] for i, gone in enumerate(missing))
print(shop_window)产出:
(('Caerphilly', 'Danish Blue', 'Cheshire'), ('Gruyere', 'Red Windsor', 'Cheshire'), ('Gruyere', 'Danish Blue', 'Camembert'))发布于 2019-09-15 10:14:36
您可以使用元组的解压缩功能并编写以下内容:
just_no = ('Gruyere', 'Danish Blue', 'Cheshire')
missing = ('Caerphilly', 'Red Windsor', 'Camembert')
shop_window = tuple((*just_no[0:i], missing[i], *just_no[i+1:]) for i in range(0, len(just_no)))发布于 2019-09-15 10:47:08
你也可以和zip一起去
just_no = ('Gruyere', 'Danish Blue', 'Cheshire')
missing = ('Caerphilly', 'Red Windsor', 'Camembert')
shop_window = tuple((tuple(map(lambda x : x[1][1] if x[0] == i else x[1][0], enumerate(zip(just_no, missing)))) for i in range(0, len(just_no))))https://stackoverflow.com/questions/57942957
复制相似问题