symbol_list = ["....firstline.\\.||hi",
"pythonisasnake..\....",
"||||last.\\|line\\..."]
normal_list = ["ABCDfirstlineEFGHIJhi",
"pythonisasnakeKLMNOPQ",
"RSTUlastVWXYlineZABCD"]
在symbol_list
中,我想用normal_list
中相应位置的字母替换符号,并用*
替换列表中的非符号
.
\
|
这样做的解决方案是什么?
对于这两个列表,我都需要访问每一行中的每一项,这似乎非常复杂。我试着从for循环开始:
for symbol_row in symbol_list:
for symbol_item in symbol_row:
for normal_row in normal_list:
for normal_item in normal_row:
这是令人困惑的,似乎建议最多做两次
然后我试着检查其中一个条件:
if symbol_item in (".","\\","|"): # because \ is an escape character
symbol_row = symbol_row.replace(symbol_item, normal_item)
然后我将这一新行添加到new_list
中,但我的列表在打印出来后比之前长了10倍
new_list.append(symbol_row)
可以通过行理解和三元比较来完成:
你需要什么代码。在
它在symbol_列表中查找字母的所有实例,并在新列表中放置一个星号
我们可以这样写:
因此,我们首先定义一组符号(以便于扩展)。接下来,我们同时迭代}的行。对于每一行,我们迭代两行,并使用}。在
symbol_list
和{ca
(该symbol_list
行的字符)作为选择器来决定我们是为该特定字符填充'*'
还是{示例输入的输出是:
^{pr2}$在示例输入中,最后一行有点“未对齐”,因为它包含:
最后一行包含:
^{4}$相关问题 更多 >
编程相关推荐