我想要做的具体事情
symbol_list = ["....firstline.\\.||hi",
"pythonisasnake..\....",
"||||last.\\|line\\..."]
normal_list = ["ABCDfirstlineEFGHIJhi",
"pythonisasnakeKLMNOPQ",
"RSTUlastVWXYlineZABCD"]
在symbol_list
中,我希望用normal_list
中相应位置的字母替换符号,并将列表中的非符号替换为*
- 符号将始终为
.
\
|
预期输出结果:
new_list = ["ABCD*********EFGHIJ**",
"**************KLMNOPQ",
"RSTU****VWXY****ZABCD"]
如何解决这个问题?
我尝试的方法
对于两个列表,我需要访问每一行中的每个项目,这似乎非常复杂。我尝试使用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)
not str.isalpha()
来确定它是否为符号。 - Jabstr
不是list
。 - Peter Wood