Appearance
Python中的列表和Java中的List集合类似,但是我感觉比Java的List集合还要灵活,甚至能进行加法、乘法运算,常用的函数和java倒也相似,例如元素是否存在于列表中、获取列表长度、添加元素、删除元素、排序……
方法名称 | 使用效果 |
---|---|
in | 列表中是否有某元素 |
not in | 列表中是否没有某元素 |
let | 获取列表长度 |
append | 添加元素到列表末尾 |
insert | 添加元素到指定位置 |
count | 统计某元素在列表中的个数 |
remove | 删除元素,传入元素,如果删除的元素不存在,则报错 |
del | Python的内置函数,直接从内存中删除元素,删除后引用会提示变量未定义 |
reverse | 翻转列表元素的顺序 |
sort | 列表排序 |
clear | 清空列表 |
copy | 拷贝列表 |
extend | 代入列表,将其他列表导入到当前列表 |
1.列表的基础使用
列表支持加法操作,甚至支持乘法操作,len
函数获取列表长度,in
和not in
可以判断列表中是否有某值。
python
if __name__ == '__main__':
list1 = ['name1', 'name2', 'name3']
print(list1 * 2) # ['name1', 'name2', 'name3', 'name1', 'name2', 'name3']
list1 *= 2
print(list1) # ['name1', 'name2', 'name3', 'name1', 'name2', 'name3']
print(len(list1)) # 6
print('name1' in list1) # name1是否在成员中?True
print('name1' not in list1) # name1是否不在成员中?False
2.列表的添加append
python
if __name__ == '__main__':
list1 = ['name1', 'name2', 'name3']
list1.append('test')
print(list1) # ['name1', 'name2', 'name3', 'test']
3.添加到指定位置insert
如果insert传毒的位置在列表中不存在,则将新元素添加至列表末尾。
python
if __name__ == '__main__':
list1 = ['name1', 'name2', 'name3']
list1.insert(1, 'test')
print(list1) # ['name1', 'test', 'name2', 'name3']
4.某元素在列表中的个数count
python
if __name__ == '__main__':
list1 = ['name1', 'name2', 'name3']
list1.insert(1, 'test')
print(list1.count('name1')) # 1
print(list1.count('name')) # 0
5.删除元素remove
python
if __name__ == '__main__':
list1 = ['name1', 'name2', 'name3']
list1.remove('name1')
print(list1) # ['name2', 'name3']
6.删除变量del
python
if __name__ == '__main__':
list1 = ['name1', 'name2', 'name3']
del list1
print(list1) # NameError: name 'list1' is not defined,提示变量未定义
7.翻转元素reverse
python
if __name__ == '__main__':
list1 = ['name1', 'name2', 'name3']
list1.reverse()
print(list1) # ['name3', 'name2', 'name1']
8.列表排序sort
sort(cmp,key,reverse)
:cmp
指定排序方案的函数;key
参数比较;reverse
排序规则,False升序(默认),True降序。
python
if __name__ == '__main__':
list1 = [32, 95, 66, 79, 12, 59, 88]
list1.sort()
print(list1) # [12, 32, 59, 66, 79, 88, 95]
list1.sort(reverse=True)
print(list1) # [95, 88, 79, 66, 59, 32, 12]
9.清空列表clear
python
if __name__ == '__main__':
list1 = [32, 95, 66, 79, 12, 59, 88]
list1.clear()
print(list1) # []
10.拷贝列表copy
为什么不能直接赋值?直接赋值赋过去的是地址,也就是原列表发生改变,新列表的值也会同时改变,使用copy函数则不会有这个问题。
python
if __name__ == '__main__':
list1 = [32, 95, 66]
list2 = list1
print(list2) # [32, 95, 66] 打印list2发现拷贝成功
list1.remove(32) # 删除list1中的元素
print(list2) # [95, 66] list2也会发送改变
list3 = list1.copy()
list1.remove(95) # 改变list1的值
print(list3) # [95, 66],list3不会改变
11.导入extends
python
if __name__ == '__main__':
list1 = [32, 95, 66]
list2 = ['name1', 'name2']
list1.extend(list2)
print(list1) # [32, 95, 66, 'name1', 'name2']
12.切片
python
if __name__ == '__main__':
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[0]) # 1
print(num[2:5]) # [3, 4, 5]
print(num[5:]) # [6, 7, 8, 9]
print(num[:3]) # [1, 2, 3]
num[2] = 30 # 修改i指定下标的内容
print(num) # [1, 2, 30, 4, 5, 6, 7, 8, 9]
del num[2] # 删除某个元素
print(num) # [1, 2, 4, 5, 6, 7, 8, 9]