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字节
字节:存储和传输
x\a11\12a # 010101010
今天是个好日子
s = "今天" # b'\xe4\xbb\x8a\xe5\xa4\xa9'
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() # 解码
# 用什么编码就要用什么解码
# 网络传输一定是字节