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个参数












posted @ 2021-05-31 10:11  一个小白的自我修养  阅读(59)  评论(0)    收藏  举报