python 第二周复习笔记 (一)
字符串二进制转换
mgs = '你好'
print(mgs)
print(mgs.encode(encoding='utf-8')) #字符串转二进制
print(mgs.encode(encoding='utf-8').decode()) #字符串转二进制再转字符串
在win(python2.7)中执行时报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
解决办法加入三行代码即可
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
执行结果(在python3中)
你好
b'\xe4\xbd\xa0\xe5\xa5\xbd'
你好
###### 执行结果(在python2中)
你好
你好
你好
列表--实例
names = ['zhang san','li si','wang ma zi','jack','wangmazi','jod','wang ma zi']
print(names)
print(names[0],names[2])
print(names[1:2]) #顾头不顾尾 切片
print(names[-1]) #取最后一个值 切片
print(names[-3:-1]) #从左往右取值,不可用[-1:-3] 切片
print(names[-2:]) #取到最后一个可以省略
print (names[:3]) #取前三个,可以省略第一个
names.append('Tom') #追加,放到最后
print (names)
names.insert(1,'apple') #插入指定位置,例如 1 指第二个位置,不支持批量插入
print(names)
names[2] = 'xxx' #修改
print(names)
names.remove('xxx') #delete 第一种方法
print(names)
del names[0] #第二种删除方法
print(names)
names.pop() #默认删除最后一个值
names.pop(0) #删除第一个
print (names)
print (names.index('jack')) #打印‘jakc’所在的位置
print(names[names.index('jack')]) #打印出‘jack’
print(names.count('wang ma zi')) #统计有几个'wang ma zi'
names.clear() #清空列表 python2中没有 clear python3中有
print(names)
names.reverse() #反转
names.sort() #排序 排序顺序:特殊符合、数字、大写字母、小写字母 (AIIS码排序方法)
print(names)
names2 = [1,2,3,4]
names.extend(names2) #把names2列表合并到names里面
del names2 #删除names2列表
print (names)
print(names[0:-1:2]) #从第一个到最后一个,隔一个打印一个 names[0:-1:2] =names[::2]
for i in names:
print i
浅copy: python2中么有,python3中有
names = ['zhang san','li si',['zx','xx'],'wang ma zi','jack','wangmazi','jod','wang ma zi'] #列表中套列表
names2 = names.copy() #copy复制列表
print(names)
print(names2)
names[1] = 'xxx'
names[2][0] = 'ZX' #取names列表中第三个值中的第一个值
print(names) #names列表第一个值变成xxx
print(names2) #names2列表没有改变
运行结果
root@debian:~# python3 names_list.py
['zhang san', 'li si', ['zx', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
['zhang san', 'li si', ['zx', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
['zhang san', 'xxx', ['ZX', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
['zhang san', 'li si', ['ZX', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
浅copy有3种方式 ---用来创建联合帐号
import copy
person = ['zx',['xs',123]]
p1 = copy.copy(person)
p2 = person[:] #
p3 = list(person)
print(p1)
print(p2)
print(p3)
注:copy为浅复制,只复制第一层,copy用到的比较少
深copy (完全复制) 调用import copy函数
import copy
names = ['zhang san','li si',['zx','xx'],'wang ma zi','jack','wangmazi','jod','wang ma zi']
names2 = copy.deepcopy(names)
print(names)
print(names2)
names[1] = 'xxx'
names[2][0] = 'ZX'
print(names)
print(names2)
运行结果
C:\Python27\python.exe D:/python/PyCharm/The_second_week/names_list.py
['zhang san', 'li si', ['zx', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
['zhang san', 'li si', ['zx', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
['zhang san', 'xxx', ['ZX', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
['zhang san', 'li si', ['zx', 'xx'], 'wang ma zi', 'jack', 'wangmazi', 'jod', 'wang ma zi']
Process finished with exit code 0
注:深copy不要瞎用,需求用处不大
元祖
names = ('zx','ww')
print names.index('zx')
print names.count('zx')
注:元祖只能查看不能修改,只有index 和count 2个参数

浙公网安备 33010602011771号