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是否不在成员中?False2.列表的添加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'))   # 05.删除元素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]