python 学习之路(列表,元组)
python3 byte 与 str 互相转换
>>> "ab测试".encode('utf-8')
b'ab\xe6\xb5\x8b\xe8\xaf\x95'
>>> b'ab\xe6\xb5\x8b\xe8\xaf\x95'.decode('utf-8')
'ab测试'
参数 ‘utf-8’ 参数如果不写 默认为 “utf-8”
列表 的使用方法
列表的声明
#列表
a=[1,2,3,4]
查询方法
#查询方法
print(a[0])#取第一个值
print(a[1:3])#取中间两个值 2 3 要开头不要结尾
print(a[-2])#取倒数第二个
print(a[-2:])#去最后两个
print(a[:2])#0可以省略,这个意思和[0:2]是一个意思
print(a.index(3))#打印3这个数字的位置(下标)
print(a[0:-1:2]) #打印 从0位置到最后 步长为2 打印结果为:[1 , 3]
print(a[::2]) # 效果同上
追加和插入的方法
a.append(5) # 向后追加数值
a.insert(1,6) # 插入 第一个是位置(下标) 第二个是想要插入的数值 不能进行批量插入
更改的方法
a[2] = 7 # 将第三个位置的数字改成7 直接赋值
删除的方法
a.remove(3) # 将数字3删除,注意不是第三个位置
del a[1] #删除第二个位置的数字
a.pop() #删除最后一个位置 加参数就是删除的第几个 比如a.pop(1) 删除第二个
统计
a.count(3) #有几个3这个数字
清空
a.clear()
反转
a.reverse()
排序
a.sort()
合并
b=["a","b","c"]
a.extend(b) #内容为:[1, 6, 2, 3, 4, 5, 'a', 'b', 'c']
复制
c=a.copy() #只copy第一层 如:[1,2,3,["1","2"],4] 只copy外层的地址。里面的列表都是一样的。
不理解可以看下面这个图片说明:
浅copy方法
import copy
# 补充一下浅copy的用法
c = copy.copy(a)
d = a[:]
e = list(a)
说明:浅copy 需要 import copy
深copy
import copy
# 如果想要进行全copy 使用一下方法
a = [1,2,3,["1","2"],4]
b = copy.deepcopy(a)
print(a , b)
a[3][0] = "3"
print(a , b)
# 打印的结果
# [1, 2, 3, ['1', '2'], 4] [1, 2, 3, ['1', '2'], 4]
# [1, 2, 3, ['3', '2'], 4] [1, 2, 3, ['1', '2'], 4]
说明:深copy 需要 import copy
列表的循环
# 列表的循环
for i in a:
print(i) #这里就不写打印结果了。
for index , item in enumerate(a):
print(index , item) # index 为下标数
列表的长度
len(a) #得到列表的长度
元组
说明:元组和列表差不多,只不过是元组一旦创建便不能修改,也称为只读列表。
方法
#声明
a = (1,2,3,4)
#元组只有两个方法,1.count 2.index