容器数据类型补充

tu =(1,2,3)

tu1=tu+(1,2)

print(tu1)

tu=(1,)

print(type(tu))

1.str

s="saw dxc"

s=s.capitalize()第一个单词首字母大写

s=s.title()每个单词的首字母大写

s=s.swapcase()全部大写

s=s.center(20,"*")居中 填充

s=s.find("x")通过元素查找索引

s="_".join(s)拼接还可以将列表变成字符串

s1=s*2

print(s is s1)

s2=s+"123"

print(s2) 字符串的加和乘都产生新的地址

2list

print(list('12344'))列表的定义

lst=[1,2,3,4,5,12,7]

print(lst.index(4))通过元素查找索引

lst.sort()

lst.reverse()人工降序

print(lst)

lst.sort(reverse=True)一行实现降序

print(lst)

lst1=lst[::-1]不修改源数据进行翻转

print(lst1)

print(lst)

lst1=lst+[1,2,3]列表进行加运算时开辟新空间

print(lst)

lst=lst*2 列表乘运算时,数据是公用的

print(lst)

print(lst[0] is lst[7])

# 面试题:

lst = [1,[]] * 5

print(lst)

lst[1].append(6)

print(lst)

列表在进行乘法的时候,元素是共用的

[1, [], 1, [], 1, [], 1, [], 1, []]

[1, [6], 1, [6], 1, [6], 1, [6], 1, [6]]

3元组tuple

tu =(12,3,4)

tu1 =(12,3,4)+(1,2)

print(tu is tu1)

tu = (1,[]) * 3

print(tu)

tu[-1].append(10)

print(tu)

tu = (1, []) * 3

print(tu)

tu[-1].append(10)乘法运算时,数据是公用的

print(tu)

dic = {"key":1,"key1":2,"key2":4,"key3":1}

print(dic.popitem()) # 随机删除 python3.6版删除最后一个键值对

# popitem返回的是被删除的键值对

print(dic)

面试题:

dic = {}

dic.fromkeys("abc",[]) # 批量创建键值对 "a":[],"b":[],"c":[]

print(dic)#只是创建并没有把值写入字典

dic = {}

dic = dic.fromkeys("abc",[])

print(dic)

dic["b"] = 11

dic["a"].append(10)

print(dic)

fromkeys 第一个参数必须是可迭代对象,会将可迭代对象进行迭代,成为字典的键.第二个参数是值(这个值是共用的)

fromkeys 共用的值是可变数据类型就会有坑,不可变数据类型就没事

基础数据类型总结:

可变,不可变,有序,无序

# 1.可变:
#     list
#     dict
#     set
# 2.不可变:
#     int
#     str
#     bool
#     tuple
# 3.有序:
#     list
#     tuple
#     str
# 4.无序:
#     dict
#     set

取值方式:

# 1.索引
#     list
#     tuple
#     str
#
# 2.键
#     dict
#
# 3.直接
#     int
#     bool
#     set

数据类型转换

str -- int

int -- str

str -- bool

bool -- str

int -- bool

bool -- int

list -- tuple

lst = [1,23,5,4]

print(tuple(lst))

tuple -- list

tu = (1,23,5,4)

print(list(tu))

list -- set

lst = [1,23,12,31,23]

print(set(lst))

set -- list

tuple -- set

tu = (1,2,3,4,5)

print(set(tu))

set -- tuple

重要: *****

# list -- str
# lst = ["1","2","3"]
# print("".join(lst))

# str -- list
# s = "alex wusir 太白"
# print(s.split())

目前字典转换,自己实现方法

重点:

# find
# join
# 列表乘法
# 元组(1,)
# 元组乘法
# list -- str
# str -- list

有序的数据类型进行了乘法运算和加法运算

死循环

lst = [1,2,3]

for i in lst:

lst.append(4)

print(lst)

lst = [11,22,33,44]

for i in lst:

lst.remove(i)

print(lst)

for i in lst:

del lst[-1]

print(lst)

lst = [11,22,33,44]

for i in lst:

lst = [11,22,33,44]

for i in range(len(lst)):

del lst[-1]

print(lst)

for i in range(len(lst)):

lst.pop()

print(lst)

lst = [11,22,33,44]

lst1 = lst[:]

for i in lst1:

lst.remove(i)

print(lst)

使用for循环清空列表元素内容

1.从后向前删除, 2.创建一个新的容器,循环新的容器删除旧的容器内容

面试题:

# lst = [1,[2]]
# lst[1] = lst
# print(lst)
# 答案: [1, [...]]

字典和集合:

dic = {"key":1,"key1":2}

for i in dic:

if i == "key1":

dic[i] = dic[i] + 8 # dic[i] = 10

else:

print("没有这个键!")

print(dic)

字典和集合在遍历(循环)时不能修改原来的大小(字典的长度),可以进行修改值

s = {1,2,3,4,5,6}

for i in s:

二次编码

ascii码:

支持:英文,数字,符号 1字节

不支持:中文

GBK(国标):

支持:英文,数字,符号 -- ascii 1字节

支持:中文 2字节

Unicode(万国码):

支持:英文,数字,符号 -- ascii 4字节

支持:欧洲 4字节

支持:亚洲 4字节

utf-8:

支持:英文,数字,符号 -- ascii 1字节

支持:欧洲 2字节

支持:亚洲 3字节

00001101 = 1字节

字节:存储和传输

xa1112a

010101010

今天是个好日子

s = "今天" # b'xe4xbbx8axe5xa4xa9'

s1 = s.encode("utf-8") # 编码

print(s1)

a = "meet"

s1 = a.encode("utf-8") # 编码

print(s1)

a = "meet"

a = "今天好"

s1 = a.encode("gbk") # 编码

print(s1)

print(b"meet") # 只有字母才能这么搞

s2 = s1.decode("utf-8") # 解码

print(s2)

必会

# python3: 默认编码unicode
# pyhton2:默认编码ascii
# python2不支持中文

重要:

# encode()  # 编码
# decode()  # 解码
# 用什么编码就要用什么解码
# 网络传输一定是字节
原文地址:https://www.cnblogs.com/python25/p/11402506.html