Python中[:]的含义是什么?

39

下面的代码中,del taglist[:]这一行是什么意思?

import urllib
from bs4 import BeautifulSoup
taglist=list()
url=raw_input("Enter URL: ")
count=int(raw_input("Enter count:"))
position=int(raw_input("Enter position:"))
for i in range(count):
    print "Retrieving:",url
    html=urllib.urlopen(url).read()
    soup=BeautifulSoup(html)
    tags=soup('a')
    for tag in tags:
        taglist.append(tag)
    url = taglist[position-1].get('href', None)
    del taglist[:]
print "Retrieving:",url

问题是“编写一个Python程序,对http://www.pythonlearn.com/code/urllinks.py进行扩展。该程序将使用urllib从下面的数据文件中读取HTML,从锚标记中提取href=值,扫描与列表中第一个名称相对位置处的标记,跟随该链接并重复此过程若干次,并报告您找到的最后一个名称”。 示例问题:从http://python-data.dr-chuck.net/known_by_Fikret.html开始 查找位置为3的链接(第一个名称为1)。跟随该链接。重复此过程4次。答案是您检索到的最后一个名称。 名称序列:Fikret Montgomery Mhairade Butchi Anayah 序列中的最后一个名称:Anayah


它会从列表中移除所有元素。 - mgilson
@mgilson,你能解释一下这个程序是如何工作的吗?也就是最后三行代码的作用? - Sourav
1个回答

51

[:] 是数组切片语法,用于获取数组中的每个元素。

这里的答案更详细地解释了切片在Python中的一般用法:如何使用Python中的切片

del arr # Deletes the array itself
del arr[:]  # Deletes all the elements in the array
del arr[2]  # Deletes the third element in the array
del arr[1:]  # etc..

谢谢...还能解释一下这行代码的作用吗?"url = taglist[position-1].get('href', None)"。我是Python新手... - Sourav
https://dev59.com/uHI95IYBdhLWcg3w-DH0#2068377 可能会有所帮助 - khazhyk
我不明白 "position-1" 是在做什么? - Sourav
1
它正在从“位置”中减去1。 - khazhyk
是的,我知道,但为什么? - Sourav
因为可迭代结构在许多(大多数)编程语言中都是从0开始索引的,所以结构的第一个元素的索引是0,最后一个元素的索引是len(structure) - 1 - David Ferenczy Rogožan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接