前面对字符串类型有一篇文章介绍,接种介绍基本数据类型和控制语句,后又介绍了Python的中基本运算,后续将依次介绍几个重要的集合数据类型:列表 List,字典 dict, Set集合。
1.切片和索引
列表的索引是从0开始,直到列表长度-1.
例如:
a = [1, 2, 3, 4, 5, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
位置索引:
print(a[0])
–输出 1
print(a[len(a)-1])
–输出最后一项:e
切片:不包含切片的右边界
print(a[1:3])
– 输出:[2, 3]
print(a[:3])
– 输出:[1, 2, 3]
print(a[3:5])
– 输出:[4, 5]
print(a[-3:-1])
– 输出:[‘c’, ‘d’]
2.获取列表长度
print(len(a)) – 输出:10
3.列表的可变性–追加元素,修改元素,插入元素,删除元素
追加
a.append(“AOK”) # 在列表后直接追加元素
print(a) # [1, 2, 3, 4, 5, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘AOK’]
修改
a[0] =‘123’ # 直接修改第一个元素的值
print(a) # [123, 2, 3, 4, 5, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘AOK’]
插入元素
a.insert(1, ‘test’) # 指定要插入的索引位置,本例为1号位置,即元素2前插入
print(a) # [123, ‘test’, 2, 3, 4, 5, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘AOK’]
删除元素
a.remove(‘test’)
print(a) # [123, 2, 3, 4, 5, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘AOK’]
使用remove( )要保证要移除的元素是存在与列表中,不存在会抛出异常。
使用pop() 方法,按照索引弹出,并返回弹出的值。
v = a.pop(1)
print(v) # 将索引1的元素弹出,即 2
print(a) # 列表中就不存在元素2了,[123, 3, 4, 5, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘AOK’]
4. 判断元素是否在列表中,出现的次数
# 元素出现的次数
b =[1, 2, 3, 3, 2, 4, 5, ‘a’, ‘a’, ‘b’, ‘c’, ‘c’, ‘c’ ]
if ‘c’ in b:
print(b.count(‘c’)) #输出3
如果‘c’存在集合中,输出出现的次数,换其它元素是一样的,主要使用in、not in判断元素是否存在集合中。
count(‘x’) 方法计算出现的次数。
5. 元素出现的位置
print(b.index(3)) # 输出2
返回的是该元素第一次出现的位置
还可指定查找的区间范围:
print(b.index(3, 3, 8)) # 表示从3号位置到8号位置直接查询,输出3
6. 集合的合并
a = [1, 2, 3]
b = [‘a’, ‘b’, ‘c’]
aANDb = a + b
print(aANDb)
使用加法将2个集合合并,输出:[1, 2, 3, ‘a’, ‘b’, ‘c’]
c = [4, 5, 6]
a.extend©
print(a) # 输出:[1, 2, 3, 4, 5, 6]
将列表追加在列表a后面。
还可使用赋值的方式,如下示例,不建议使用,使用上2中方法即可。
d =[‘t’, ‘e’, ‘s’, ‘t’]
a[len(a):]=d
print(a) # [1, 2, 3, 4, 5, 6, ‘t’, ‘e’, ‘s’, ‘t’]
7.如何创建列表
使用range(start, stop,[step]),默认步长1
a = []
for x in range(1, 10):
a.append(x)
print(a) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
可随意改变步长:
for x in range(1, 10, 2):
a.append(x) # [1, 3, 5, 7, 9]
print(a)
可反向输出:
for x in range(10, 1, -3):
a.append(x) #[10, 7, 4]
print(a)
负数索引:
for x in range(0, -9, -1):
a.append(x)
print(a) #[0, -1, -2, -3, -4, -5, -6, -7, -8]
8.列表元素排序
方式1:使用list.sort( )方法
s = [3, 1, 10, 2, 8, 6]
list.sort(s)
print(s) # [1, 2, 3, 6, 8, 10]
使用集合的函数sort对集合排序,默认升序。
降序,给参数reverse传入参数Ture即可。
list.sort(s, reverse=True)
print(s)
输出:[10, 8, 6, 3, 2, 1]
方式2:使用sorted()函数
sorted(s, reverse=False)
print(s) #[3, 1, 10, 2, 8, 6]
sorted(s, reverse=True)
print(s) # [3, 1, 10, 2, 8, 6]
这个排序并不是按照值的大小排序的,而是ASCII字符的顺序排序。
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。