只是一点背景:我正在制作一个程序,用户输入一个框架文本、两个数字(下限和上限)和一个单词列表。输出是对骨架文本的一系列修改。
样本输入:
text = "Player # likes @." (replace # with inputted integers and @ with words in list)
lower = 1
upper = 3
list = "apples, bananas, oranges"
用户可以选择先迭代数字:
Player 1 likes apples.
Player 2 likes apples.
Player 3 likes apples.
或者先说一句话:
Player 1 likes apples.
Player 1 likes bananas.
Player 1 likes oranges.
我选择通过基于数字键(用户输入的整数)或单词键(来自输入列表中的单词)创建不同类型的字典来拆分这两种输出方法,然后迭代字典中的值。
以下是两种类型的字典创建:
def numkey(dict): # {1: ['Player 1 likes apples', 'Player 1 likes...' ] }
text, lower, upper, list = input_sort(dict)
d = {}
for num in range(lower,upper+1):
l = []
for i in list:
l.append(text.replace('#', str(num)).replace('@', i))
d[num] = l
return d
def wordkey(dict): # {'apples': ['Player 1 likes apples', 'Player 2 likes apples'..] }
text, lower, upper, list = input_sort(dict)
d = {}
for i in list:
l = []
for num in range(lower,upper+1):
l.append(text.replace('#', str(num)).replace('@', i))
d[i] = l
return d
很好,我有两个单独的函数来创建不同类型的字典,但我看到两者之间有很多重复。有什么方法可以让我创建一个字典函数并将不同的值传递给它,这会改变嵌套 for 循环的顺序以创建我正在寻找的特定 {key : value} 对?
我不确定如何做到这一点。有什么与函数式编程或其他范式相关的东西可能对此有所帮助吗?这个问题有点抽象,比任何东西都更注重风格/设计。