列表的基本使用
- 当我们有多个数据需要按照一定的顺序进行保存的时候,可以考虑使用列表
- 使用[]来表示一个列表,列表里面的每一个数据我们称之为元素
- 元素之间使用逗号进行分隔
names = ['zhangsan','lisi','wangwu','ermazi','dazhutou']
print(list(('aaa','bbb','ccc','ddd')))
print(names[3])
print(names[3:6])
names[3] = 'erliuzi'
print(names)
列表的操作
- 列表是用来保存多个数据,是有序可变的
- 操作列表,一般都包含增删改查
增
- 添加元素的方法 append insert extend
names = ['zhangsan','lisi','wangwu','ermazi','dazhutou']
names.append('liuziheng')
print(names)
names.insert(2,'zhuzhuzhu')
print(names)
other_names = ['aaa','bbb','ccc']
names.extend(other_names)
print(names)
删
names = ['zhangsan','lisi','wangwu','ermazi','dazhutou']
x = names.pop()
print(x)
print(names)
names.remove('lisi')
print(names)
names.clear()
print(names)
改
查
names = ['zhangsan','lisi','wangwu','ermazi','dazhutou']
x = names.index('zhangsan')
print(x)
x = ('lisi' in names)
print(x)
列表的遍历
- 遍历:将所有的数据都访问一遍.遍历针对可迭代对象
- while循环遍历
- for…in循环遍历
names = ['zhangsan','lisi','wangwu','ermazi','dazhutou']
i = 0
while i < len(names):
print(names[i])
i += 1
for i in names:
print(i)
冒泡排序
n = [6,5,3,1,8,7,2,4]
x = 0
while x < 7:
x += 1
i = 0
while i < len(n) -1:
if n[i] > n[i+1]:
n[i],n[i+1] = n[i+1],n[i]
i += 1
print(n)
列表的排序反转
- 使用内置方法sort可以对列表进行排序
- 使用内置函数sorted,不会改变原有的列表数据,会生成一个新的有序数据
- 使用reverse方法,相当于[::-1],可以将列表倒排
names = ['zhangsan','lisi','wangwu']
names.sort()
print(names)
names.sort(reverse=True)
print(names)
names = ['zhangsan','lisi','wangwu']
x = sorted(names)
print(names)
print(x)
names = ['zhangsan','lisi','wangwu']
names.reverse()
print(names)
names = ['zhangsan','lisi','wangwu']
print(names[::-1])
可变数据类型和不可变数据类型
- Python中的数据都是保存在内存中的
- Python中的数据分为可变类型和不可变类型
- 不可变类型:
- 可变类型
- 不可变类型的数据如果修改值,会导致内存地址发生变化
- 可变类型的数据,如果修改值,内存地址不会发生变化
列表的复制
- 调用copy方法,可以复制一个列表
- 这个新的列表和原有的列表内容一样,但是指向不同的内存空间
- 除了使用自带的copy方法之外,也可以使用cpoy模块中的copy方法,使用效果一样
- 切片其实就是一个浅拷贝
深拷贝和浅拷贝
import copy
nums = [1,2,3,4,5,6]
nums1 = nums
nums2 = nums.copy()
nums3 = copy.copy(nums)
words = ['hello','good',[100,200,300],'yes']
words1 = words.copy()
words[0] = '你好'
print(words1)
words[2][0] = 1
print(words1)
words = ['hello','good',[100,200,300],'yes']
words2 = copy.deepcopy(words)
words[2][0] = 1
print(words2)