【发布时间】:2021-04-25 08:53:38
【问题描述】:
我有一个函数可以一个接一个地打印一堆行。它接受不同符号的输入,然后根据 if 条件将列表中的字符串 obj 替换为这些符号。
例如:
original_string = ["|-----", "|-----", "|-----", "|-----", "|-----"]
my_list = ['*', '+']
def foo(my_list):
new_string = original_string[:]
for i in range(len(original_string)):
# The following if condition changes often to print different patterns.
# I've evaluated it to give an even integer for simplicity purposes
if i % 2 == 0:
new_string.pop(i)
new_string.insert(i, f"|--{my_list[0]}--")
print(new_string)
foo(my_list)
我得到以下输出:
['|--*--', '|-----', '|-----', '|-----', '|-----']
['|--*--', '|-----', '|-----', '|-----', '|-----']
['|--*--', '|-----', '|--*--', '|-----', '|-----']
['|--*--', '|-----', '|--*--', '|-----', '|-----']
['|--*--', '|-----', '|--*--', '|-----', '|--*--']
我的问题是:如何让 python 程序识别生成了哪些输出模式并采取相应措施?
我正在寻找类似这样的东西:
这是我的实际代码输出:
Output pattern I want to recognise:
Pattern A:
1 |-------x------------
2 |-----------------x--
3 |-----------------x--
4 |-----------------x--
5 |-------x------------
6 |--------------------
Actual Final Output pattern:
1 |-------3------------------------8--------10------12
2 |-------3---------5--------------8------------------
3 |-----------------5---------7---------9-----------12
4 |--2--------------5-----------------------10------12
5 |-------3---------5---------7-------------10--------
6 |-------3------------------------8--------10------12
So, if Pattern A exists within final output, I should only print position of pattern A in the output and x should be replaced by the fret position numbers as found in the actual output.
所需的输出如下所示:
1 |-------3------------
2 |-----------------5--
3 |-----------------5--
4 |-----------------5--
5 |-------3------------
6 |--------------------
注意:这里的一个位置是 5 个字符。即“--x--”是一个位置
【问题讨论】:
-
我不明白为什么我的问题被否决了。这不是一个有效的问题还是没有遵循某些协议?
-
我可以看到几种可能性:(1)“有什么办法……?”是一个格式错误的问题的强烈指示。你在一台通用计算机上,它只是缺少一台车床。由于基本信息显然在您的数据中,因此答案是“是”。对于大多数问题,“我该怎么做”是题外话。 (2) 缺乏努力。您的描述强烈暗示了一个查找表,但您还没有尝试实现它。 (3) 过于冗长的描述。请记住本网站的中心目的。 (4)缺乏研究。记忆是一种众所周知的技术。
-
这看起来很像吉他指法谱。你的模式真的是一个随着时间推移演奏的品丝列表,叠加在线条上吗?
-
@chepner 是的,我正在尝试打印吉他谱表并识别和弦形状^_^ 最后,知道我在做什么的人。我将音阶上的所有音符都印在 22 品的琴颈上,但不知道如何根据需要根据左手形状过滤掉音符。
-
@Prune 谢谢。我是初学者,自学成才,非研究生,我不知道查找表是否存在。我知道记忆,但我无法在这里成功实现它。这个问题有点冗长,是的,因为我正在尽力在这里解释这个问题。这绝对不是我没有尝试解决自己或做一些研究的事情。我问因为我无法在其他任何地方得到解释。不是因为我懒得自己尝试解决问题。在构建问题的所有努力之后,当问题被否决并关闭时,非常令人沮丧。
标签: python python-3.x memoization