在python中切片是取一个list或tuple中的部分元素的常见操作。
注意这里说的是list和tuple。
什么是list呢?
它是Python内置的一种数据类型。list是一种有序的集合,可以随时添加和删除其中的元素。
比如:
names= ['Michael', 'Bob', 'Tracy']
name就是一个list,如果取其中的元素,比如取第1个元素,那么list的下标就是0,代码就是:
>>> names[0]
'Michael'
这个就是list的切片操作。
而对于tuple。它是另一种有序列表,又叫元组。tuple一旦初始化就不能修改。还是刚刚的例子,对于tuple就是:
>>> names= ('Michael', 'Bob', 'Tracy')
tuple不能变了,它也没有append(),insert()这样的方法。但是它的获取元素的方法和list是一样的,比如:
>>> names[0]
'Michael'
python中的切片操作就是针对tuple和list的取元素的操作。
所以在看你的问题,报的错误翻译就是set操作不支持下标操作。所以你的11声明的是一个set对象,不是list或者tuple对象,它是没有切片操作的。
set是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
>>> s = set([1, 2, 3])
>>> s
set([1, 2, 3])
这里传入的参数[1, 2, 3]是一个list,而显示的set([1, 2, 3])只是告诉你这个set内部有1,2,3这3个元素,显示的[]不表示这是一个list。
重复元素在set中自动被过滤:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
set([1, 2, 3])