python(1)-元组和集合
Python的列表与Java、C等其他语言的数组非常相似,是对象的有序集合。创建列表的方法是,在方括号中列出以逗号分隔的元素,如下所示:
# 将包含3个元素的列表赋给x
x = [1, 2, 3]
注意,列表不必提前声明,也不用提前就将大小固定下来(大小可变)。以上在一行代码中就完成了列表的创建和赋值,列表的大小会根据需要自动增减。
与很多其他语言的列表不同,Python的列表可以包含不同类型的元素,列表元素可以是任意的Python对象。下面就是包含各种元素的列表示例:
# 第一个元素是数字,第二个元素是字符串,第三个元素是另一个列表
x = [2, "two", [1, 2, 3]]
最基本的内置列表函数或许就是len函数了,它返回列表的元素数量:
x = [2, "two", [1, 2, 3]]
print(len(x))
len函数不会对内部嵌套的列表中的数据项进行计数。
x=[0]
print(len(x))
x=[]
print(len(x))
x=[[1, 3, [4, 5], 6], 7]
print(len(x))
使用类似C语言数组索引的语法,就可以从Python列表中提取元素。像C和许多其他语言一样,Python从0开始计数,索引为0将返回列表的第一个元素,索引为1则返回第二个元素,依此类推。下面给出一些示例:
x = ["first", "second", "third", "fourth"]
print(x[0])
print(x[2])
但是Python的索引用法比C语言更加灵活。如果索引为负数,表示从列表末尾开始计数的位置,其中-1是列表的最后位置(0已经被用了,只能从-1开始),-2是倒数第二位,依此类推。继续沿用以上列表x,可以执行以下操作:
print(x[-1])
print(x[-2])
Python支持一次提取或赋值一整个子列表,也就是切片(slice)操作。不是用list[index]提取紧跟着index的数据项,而是用list[index1:index2]提取index1(含)和上限至index2(不含)之间的所有数据项,并放入一个新列表中。**取前取后,这个是编程里面经常遇到的一种情况。**下面给出一些示例:
x = ["first", "second", "third", "fourth"]
print(x[1:-1])
print(x[0:3])
print(x[-2:-1])
如果第二个索引给出第一个索引之前的位置会返回空列表:
print(x[-1:2])
在对列表进行切片时,还可以省略index1或index2。省略index1表示“从列表头开始”,而省略index2则表示“直到列表末尾为止”:
print(x[:3])
print( x[2:])
如果两个索引都省略了,将会由原列表从头至尾创建一个新列表,即列表复制。如果需要修改列表,但又不想影响原列表,就需要创建列表的副本,这时就能用列表复制技术了:
y = x[:]
y[0] = '1 st'
print(y)
print(x)
本文全代码合集
# 将包含3个元素的列表赋给x
x = [1, 2, 3]
print(x)
# 第一个元素是数字,第二个元素是字符串,第三个元素是另一个列表
x = [2, "two", [1, 2, 3]]
print(x)
print(len(x))
x=[0]
print(len(x))
x=[]
print(len(x))
x=[[1, 3, [4, 5], 6], 7]
print(len(x))
x = ["first", "second", "third", "fourth"]
print(x[0])
print(x[2])
print(x[-1])
print(x[-2])
x = ["first", "second", "third", "fourth"]
print(x[1:-1])
print(x[0:3])
print(x[-2:-1])
print(x[-1:2])
print(x[:3])
print( x[2:])
y = x[:]
y[0] = '1 st'
print(y)
print(x)