概念:列表是由一系列按特定顺序排列的元素组成,列表能存储多种类型的数据,其中的元素之间可以没有任何关系
列表与字符串互相转化:
str >>> list
1、list(iterable)系统函数 # 函数对象必须是iterable,list(iterable);
print(list("abc")) #结果:['a','b'.'c']
2、str.split()
print("我们_去_上海".split('_')) 结果:['我们','去','上海']
# 数据库中存储的类型数据(str类型)
list >>> str
1、如果list元素全是字符串, 用str.join(iterable)# join的本质:字符串拼接
print('_'.join(['我们','去','上海']))
2、如果不全是字符串:
for 循环 遍历元素,转化为str后拼接
1、列表的拼接
str1 = [1,2,]
str2 = ['a','b']
print(str1+str2) ------ 相当于 str1.expend(str2),结果:[1,2,'a','b']
2、列表的重复
str1 = [1,2,]
print(str1*3) ---------- 结果:[1,2,1,2,1,2]
list1 = [2,3,4,5]
print(list1[2]) ----------- 下标以0 开始
https://blog.csdn.net/qq_16555103/article/details/83625995 -------- 第三节
================================ 切片赋值 与 索引赋值的区别 ========================
1、切片赋值
list1 = [1,2,4,6]
list1[1:3] = 'abcdefghigk'
print(list1) ---------- [1, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 6]
2、索引赋值
list2 = [1,2,3,4]
list2[2] = 'abcdefgt'
print(list2) ---------- [1, 2, 'abcdefgt', 4]
append函数没有return值,添加元素保存在原list中。list
list1 = [1,2,'a']
list1.append([6,7,8])
print(list1) # 结果 [1, 2, 'a', [6, 7, 8]] 注意与extend的区别。
list1 = [1,2,'a']
list1.extend([777,888,9999])
print(list1) #结果 [1, 2, 'a', 777, 888, 9999]
list1 = [1,2,'a']
list1.insert(2,[99,000]) # 先索引 后插入值
print(list1) # 结果 [1, 2, [99, 0], 'a']
list1 = [1,2,'a']
p = list1.pop() --------------- 支持索引 默认最后一个 return删除元素
print(list1) --------------- 删除元素后的list
print(p) --------------- return删除元素
# 结果 [1, 2]
a
list1 = [1,2,'a',9999,2222,9999,9999]
p = list1.remove(9999)
print(list1) ------- 结果:[1,2,'a',2222,9999,9999]
print(p) ------- 结果:9999
===============================================================================
while 值 in list1: ---------- 删除所有
list1.remove(值)
list1 = [1,2,'a',9999,9999,9999]
del list1[3] #
print(list1)
用索引的方式查找元素。
list1 = [1,2,3,4,56]
if 3 in list1:
print('存在3')
else:
print('不存在3')
list1 = [1,2,'a',9999,9999,9999]
list2 = ['a78','123','sh']
list3 = [747,888,989]
print(max("29889aA7"))
print(list1) #报错 列表中int与str无法比较
print(list2)
print(list3)
list1 = [1,2,'a',9999,9999,9999]
print(list1.count(9999)) ----- 结果:3
print(list1.index(9999,4,5)) ----- 结果:4 # 三个参数,只返回第一个值的索引;如果不存在报错
清空clear()请注意,可以用 赋值 空列表([]) 来清空。
list1 = [1,2,3]
list2 = []
list2.append(list1) append追加列表时相当于追加一个 引用,他们共同使用一个内存空间,因此清空list1时list2也跟着清空。
print(list1,list2)
list1.clear()
print(list1,list2) # 结果 : [1, 2, 3] [[1, 2, 3]]
# [] [[]]
# 改进1、
import copy
list1 = [1,2,3]
list2 = []
list2.append(list1)
list2 = copy.deepcopy(list2) 深拷贝
print(list1,list2)
list1.clear()
print(list1,list2) # 结果 : [1, 2, 3] [[1, 2, 3]]
[] [[1, 2, 3]]
# 改进2、
可以将源代码中 list1.clear() 改为 list1 = [] 。 打印结果与 改进1 结果相同。
https://blog.csdn.net/qq_16555103/article/details/83748253
直接赋值:其实就是对象的引用(别名)。
python 中深浅拷贝需要 引入 模块 copy