python 中数据列表中的根标识:
Root Identification in a list of Data in python:
我是 Python 的新手。我试图从数据列表中得出 "Root Identification"。但它不起作用。这是我试过的代码:
listData=["blackish", "blacken","blacked"]
我期望的输出是:
root = [black] and suffixLi = ["ish", "en", "ed"]
其余代码:
def root():
i=0
j=0
string = ""
for word in listData:
for i in range(len(min(listData, key=len))-1):
print(len(min(listData, key=len)))
if (listData[i][j]==listData[i+1][j]):
string=string+listData[i][j]
print(listData[i][j])
print(string)
i=i+1
j=j+1
print(string)
if语句中,索引i+1超出范围。更正两行之前的循环限制;你不能 运行 "i" 比 list_length-2 更远,但你正在尝试 运行 一直到 6.
此外,您在已经控制其值的循环内递增 i;我认为您对如何处理循环索引感到困惑。
假设您要尝试查找公共前缀:
def root_pre(l):
root = ""
for t in zip(*l):
if not all(t[0] == s for s in t):
break
root += t[0]
ln = len(root)
pres = [s[ln:] for s in listData]
return root, pres
print(root_pre(listData))
('black', ['ish', 'en', 'ed'])
我是 Python 的新手。我试图从数据列表中得出 "Root Identification"。但它不起作用。这是我试过的代码:
listData=["blackish", "blacken","blacked"]
我期望的输出是:
root = [black] and suffixLi = ["ish", "en", "ed"]
其余代码:
def root():
i=0
j=0
string = ""
for word in listData:
for i in range(len(min(listData, key=len))-1):
print(len(min(listData, key=len)))
if (listData[i][j]==listData[i+1][j]):
string=string+listData[i][j]
print(listData[i][j])
print(string)
i=i+1
j=j+1
print(string)
if语句中,索引i+1超出范围。更正两行之前的循环限制;你不能 运行 "i" 比 list_length-2 更远,但你正在尝试 运行 一直到 6.
此外,您在已经控制其值的循环内递增 i;我认为您对如何处理循环索引感到困惑。
假设您要尝试查找公共前缀:
def root_pre(l):
root = ""
for t in zip(*l):
if not all(t[0] == s for s in t):
break
root += t[0]
ln = len(root)
pres = [s[ln:] for s in listData]
return root, pres
print(root_pre(listData))
('black', ['ish', 'en', 'ed'])