列表:正如其名,列表是包含在一对列[] 中的一组元素,列表由一系列按特定的顺序排列而成,列表中的元素可以不同,他支持 数值、字符串、甚至是列表(嵌套),列表中的元素是可以改变的。
下面是定义一个列表的例子:
list1 = ["a", 1, 2]
print(list1) #['a', 1, 2]
你可以使用下标来访问列表中的元素:
a = ['a','b','c']
print (a[0]) #打印列表a的第一个元素,注意:从0开始
a[0] = 'A' #修改a列表中下标为0的元素的值为A
可以通过下标来处理列表中的部分元素,Python称之为切片。
下面给出了切片的使用:
#切片
numbers = [12, 23, 34, 45]
print(numbers[0:3]) #打印列表numbers中索引为0,1,2的元素 [12, 23, 34]
print(numbers[:3]) #打印列表numbers中索引从0到2的元素 [12, 23, 34]
print(numbers[1:]) #打印列表numbers中索引从1到末尾的所有元素 [23, 34, 45]
print(numbers[:-1]) #打印列表numbers中第0到最后(不包括)一个元素 [23, 34, 45]
print(numbers[-2:]) #打印列表numbers中最后2个元素 [34, 45]
切片的使用很灵活,下标为负数表示的是倒数第几个元素,-1是倒数第一个元素。不指定第一个索引,Python将从列表的开头开始;同理,如果不指定第二个索引,Python将终止于列表的结尾。更为方便的是,切片还可以指定第三个参数,这个值将告诉Python在指定范围内每隔多少个元素提取一个,下面给了一个Python切片中使用三个参数的例子:
list2 = ['a', 'b', 'c', 'd', 'e', 'f']
print(list2[0:4:3]) #在下标[0,3]即a , b, c, d 第一个元素为a,往后数3个的元素是d,所以结果为['a', 'd']
同时,我们也可以利用Python的切片来复制一个列表。注意,这里的复制是获得一个列表的副本。如果是直接将列表赋值给另一个变量,那么这两个变量指向的还是同一个列表。
#利用切片复制一个列表
new_numbers = numbers[:] #复制列表numbers
print(new_numbers) #[12, 23, 34, 45]
如果第三个参数为负数表示逆向读取,下面实现将一个字符串反转:
#这个有点难,大家了解一下
#翻转字符串
string = "python is a great language"
tem = string.split(" ")
tems = tem[-1::-1]
#第一个参数 -1 表示最后一个元素
#第二个参数为空,由于第一个参数为-1,所以是移动到开头
#第三个参数为步长,-1 表示逆向
rs = ' '.join(tems)
print(rs)
下面是一些列表中常用的方法:
a = ['a','b','c']
a.append('d') #将元素d添加到列表的最后面
a.insert(0,'A') #向列表索引0处插入元素A
del a[0] #删除列表a索引0处的元素
poped = a.pop() #将列表a的末尾元素弹出并将其赋值给poped,注意:a列表的末尾元素已删除
popeds = a.pop(0) #将列表a的索引0处的元素弹出
#注意:用del和pop方法都会删除元素
a.remove('b') #删除a列表中的b元素
a.sort() #将列表a中的元素按字母顺序进行永久性排列(假设a中的元素都是小写字母)
a.sort(reverse = True) #将列表a中的元素按字母的相反顺序进行永久性排列
print(sorted(a)) #对列表a进行临时排序并打印,注意:列表a的元素顺序并没有发生改变
#并非所有列表的元素都是小写字母,真实的排序会比上面更加复杂
a.reverse() #将列表a的元素进行反转
len(a) #使用len函数获取列表a的长度
for i in a:
print(i) #遍历列表a,注意缩进,python根据缩进来判断代码和前一行的关系
numbers = list(range(1,5)) #使用range创建一个数字列表
print(numbers) #使用range生成了一个数字列表,注意:生成的数字为1,2,3,4,不包括5
min(numbers) #求数字列表numbers的最小值
max(numbers) #求数字列表numbers的最大值
sum(numbers) #求数字列表numbers的和
squares = [value**2 for value in range(1,5)]
print(squares) #结果为:[1,4,9,16] 这是列表解析
另外,Python中的列表还可以相加和 *n :
list1 = ['a','b','c']
list2 = ['d']
print(list1 * 2) #['a', 'b', 'c', 'a', 'b', 'c']
print(list1 + list2) #['a', 'b', 'c', 'd']
list1.extend(list2) #作用和加法相同,将list2中所有的元素添加到list1中
Python列表可以将另外一个列表的作为一个元素添加到列表中,即所谓的嵌套:
如果要对列表去重,可以使用set()
注意:
1,列表,列表,是在列[中,并用逗号隔开。
2,列表中的元素是可以修改的。
3,列表可以被索引和切片。
4,列表可以用+号进行连接。