aks*_*pal 5 python list nested-lists
我正在开发过程add_to_index,它需要3个输入:
如果关键字已经在索引中,则将url添加到与该关键字关联的url列表中。
如果关键字不在索引中,则索引中将包含一个新元素:
[keyword,[url]]
Run Code Online (Sandbox Code Playgroud)
码
index = []
def add_to_index(index,keyword,url):
flag = 0
count = 0
for lists in index:
count += 1
if(lists[0]==keyword):
index[count][1].append(url)
if(flag ==0):
index.append([keyword,url])
#calling the function below
add_to_index(index,'google','http://google.com')
print index
Run Code Online (Sandbox Code Playgroud)
输出-> [['google', 'http://google.com']]
add_to_index(index,'computing','http://acm.org')
print index
Run Code Online (Sandbox Code Playgroud)
输出-> [['google', 'http://google.com'], ['computing', 'http://acm.org']]
add_to_index(index,'google','http://gmail.com')
print index
Run Code Online (Sandbox Code Playgroud)
错误->
index[count][1].append(url)
AttributeError: 'str' object has no attribute 'append'
Run Code Online (Sandbox Code Playgroud)
预期产量:
[['google', ['http://google.com', 'http://gmail.com']],
['computing', ['http://acm.org']]]
Run Code Online (Sandbox Code Playgroud)
您犯了三个错误,首先您没有使用flag,其次您将 url 添加为字符串。最后,正如Kaivosuketaja在评论中提到的那样,计数最终应该增加。也可以这样做
index = []
def add_to_index(index,keyword,url):
flag = 0
count = 0
for lists in index:
if(lists[0]==keyword):
flag = 1
index[count][1].append(url)
count += 1
if(flag ==0):
index.append([keyword,[url]])
# Take note of append away here
#calling the function below
add_to_index(index,'google','http://google.com')
print index
add_to_index(index,'computing','http://acm.org')
print index
add_to_index(index,'google','http://gmail.com')
print index
Run Code Online (Sandbox Code Playgroud)
现在的输出是
[['google', ['http://google.com']]]
[['google', ['http://google.com']], ['computing', ['http://acm.org']]]
[['google', ['http://google.com', 'http://gmail.com']], ['computing', ['http://acm.org']]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5851 次 |
| 最近记录: |