1、len在列表与元祖上的使用
- len()可以计算出除了数字类型之外,其他所有数据类型的长度
>>> names = ["python", "i", "love", "madongmei"]
>>> lenth = len(names)
>>> print(lenth)
4
2、列表的之间的累加和乘法
- 都是将列表拼接在一起,但两者都是定义一个新的列表,而不是在原来列表上进行操作的
>>> names = ["python", "i", "love", "madongmei"]
>>> new_names = names + names
>>> print(new_names)
['python', 'i', 'love', 'madongmei', 'python', 'i', 'love', 'madongmei']
>>> new_names = names * 2
>>> print(new_names)
['python', 'i', 'love', 'madongmei', 'python', 'i', 'love', 'madongmei']
>>> print(names)
['python', 'i', 'love', 'madongmei']
>>>
3、in 、not in 在列表中的应用
- in是用来判断某个成员是否在该数据结构当中
- not in 则是相反的,
>>> bool("i" in names)
True
>>> bool("i" not in names)
False
>>>
4、append()
- lsit.append(new_item),new_item是添加进列表的新元素
- 将一个元素添加到列表当中
- 被添加的元素只会在末尾,是在原有列表中进行操作的,与字符串、元组就有很大区别,也满足列表的长度可变的特点
>>> names = ["i"]
>>> names.append("python")
>>> print(names)
['i', 'python']
5、insert()
- insert(index,new_item),index表示新的元素item放在哪一个位置上,
- 将一个元素添加到列表的指定位置上
- 当传入的位置不存在时,则将新元素添加到列尾结尾处
>>> fruits = ["苹果", "西瓜", "水蜜桃"]
>>> fruits.insert(1,"水晶梨")
>>> print(fruits)
['苹果', '水晶梨', '西瓜', '水蜜桃']
>>>
6、count()
- inttype = list.count(item)
- 返回列表中成员个数
- 如果想要查询的元素item不存在,则返回0
>>> print(fruits)
['苹果', '水晶梨', '西瓜', '水蜜桃', '西瓜', '西瓜', '水蜜桃']
>>> fruits.count("水蜜桃")
2
>>> fruits.count("西瓜")
3
>>>
7、remove()
- list.remove(item)
- 删除列表中的某个元素
- 如果删除的元素不存在,则直接报错,删除的元素有多个,只会删除第一个
- 内置函数 del() 将整个变量删除
>>>print(fruits)
['龙眼', '葡萄', '苹果', '水晶梨', '西瓜', '水蜜桃', '西瓜', '西瓜', '水蜜桃']
>>> fruits.remove("西瓜") #只删除第一个
>>> print(fruits)
['龙眼', '葡萄', '苹果', '水晶梨', '水蜜桃', '西瓜', '西瓜', '水蜜桃']
>>> del(fruits)
>>> print(fruits)
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
print(fruits)
NameError: name 'fruits' is not defined
>>>
>>>
8、reverse()
- list.reverse() 无参数传递
- 将当前列表顺序进行翻转
- 1
>>> beverage = ["雪碧", "可乐", "绿豆冰沙", "奶茶", "老盐柠檬水"]
>>> beverage.reverse()
>>> print(beverage)
['老盐柠檬水', '奶茶', '绿豆冰沙', '可乐', '雪碧']
>>>
9、sort()
- list.sort(key = None,reverse = False) key 是参数比较,reverse是排序规则,True是降序,默认False是升序
- 对当前列表按照一定规律进行排序
- 列表中的元素类型必须相同,否则无法排序
>>> print(beverage)
['老盐柠檬水', '奶茶', '绿豆冰沙', '可乐', '雪碧']
>>> beverage.sort()
>>> print(beverage)
['可乐', '奶茶', '绿豆冰沙', '老盐柠檬水', '雪碧']
>>> books = ["python", "django", "web", "flask", "tornado", "C", "Java"]
>>> books.sort()
>>> print(books)
['C', 'Java', 'django', 'flask', 'python', 'tornado', 'web']
>>>
10、clear()
- list.claer(),无参数传递,无返回
- 清除列表中所有元素
>>> print(books)
['C', 'Java', 'django', 'flask', 'python', 'tornado', 'web']
>>> books.clear()
>>> print(books)
[]
>>>
11、copy
- list.copy() 无参数传递,返回一个一模一样的列表
- 将当前的列表复制一份相同的列表,新列表与就列表内容相同,但内存空间不同
>>> old_list = ["python", "web", "Java"]
>>> new_list = old_list.copy()
>>> print(new_list)
['python', 'web', 'Java']
>>> id(old_list)
1853861614400
>>> id(new_list)
1853861614016
>>>
- copy与二次赋值的区别,copy后与原来的列表是不同内存地址,属于浅拷贝
- 而二次赋值变量与原始变量是享有相同的内存空间
- 操作如下
>>> b = 100
>>> a = b
>>> print(a)
100
>>> id(b)
1853820655056
>>> id(a)
1853820655056
#copy是属于浅拷贝,只对第一层的数据进行copy,拷贝完成后,相互之间还是会发生变化
>>> a = [1, 2, 3]
>>> b = a.copy()
>>> b.append(4)
>>> print(a)
[1, 2, 3]
>>> print(b)
[1, 2, 3, 4]
#浅拷贝的体现如下:
>>> a = [[1, 2, 3], [4, 5, 6]]
>>> b = a.copy()
>>> b[0].append(10)
>>> print(b)
[[1, 2, 3, 10], [4, 5, 6]]
>>> print(a)
[[1, 2, 3, 10], [4, 5, 6]]
# 深拷贝:不仅仅是对第一层进行了copy,对深层的数据也进行了copy,原始变量和新变量完全不相同
>>>
13、extend
- list.extend(iterable),括弧中要放列表或元组,无返回值
- 将其他列表或元组中的元素一次性倒入到当前列表中
- 1
>>> stdents = ["xiaomei", "xiaoxi", "xiaozhang", "xiaolan", "xiaoman", "xiaohui",]
>>> new_students = ["xiaoxiong", "xiaojiao", "xiaohong"]
>>> stdents.extend(new_students)
>>> print(stdents)
['xiaomei', 'xiaoxi', 'xiaozhang', 'xiaolan', 'xiaoman', 'xiaohui', 'xiaoxiong', 'xiaojiao', 'xiaohong']
>>>