相识python --------str字符串 int整形 bool布尔值 tu元祖 set()集合 dict 字典的数据补充

int 和 str

a = ["蒋阳" ," 侯小青" ,"龙池", "程丽" ,"冯霞"]

print (a.capitalize()) 首字母大写

print (a.title()) 每个单词首字母大写

print(a.swappcase) 大小写转换

print(a.center(20,"*")) 居中 填充

print(a.find("c")) 查找 通过元素查找索引,找不到时返回-1

print(a.index()) 查找 通过元素查找索引,找不到返回就报错

print("_".join(["1","2","2"])) 拼接 将列表转换成字符串

str + str
str * 5
字符串进行加操作,乘操作都是开辟新的空间

li = ["蒋阳" ," 侯小青" ,"龙池", "程丽" ,"冯霞"]

s = "_".join(li)

print(s)———————— 蒋阳_ 侯小青_龙池_程丽_冯霞

li = "我喜欢花姑凉"

s = "_".join(li)

print(s)———————————— 我__喜_欢___花__姑__凉

列表

lst = [1,23,4,5,7,8,9]

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

lst.sort() # 排序 默认是升序
lst.sort(reverse=True) # 降序
print(lst)

lst = [1,23,4,5,7,8,9]
lst.sort()
lst.reverse() # 人工降序
print(lst)

lst = [1,23,4,5,7,8,9]
lst.reverse()
print(lst) # 将源数据进行反转

lst = [1,23,4,5,7,8,9]
lst1 = lst[::-1]
print(lst)
print(lst1) # 不修改源数据进行反转

面试题:
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]]

循环删除列表中每一个元素

li = ["蒋阳" ," 侯小青" ,"龙池", "程丽" ,"冯霞"]

for i in li :

​ Li.remove(i)

​ print(li)———————结果是:["后小青","程丽"]————— for 的运行过程中.会有一个指针来记录当前循环的元素是哪一个,一开始就是指针向第零个.然后获得是第零个元素.这个时候.原来第一个的元素会自动的变成第零个.然后指针向后移动一次,指向1元素.这是原来的1已经变成了0,也就不会被删除.

用pop删除看看

li = ["蒋阳" ," 侯小青" ,"龙池", "程丽" ,"冯霞"]

for i in range(0,len(li)):

​ del li [i]

Print (li)———— [' 侯小青', '程丽']———— 结果: 报错

i= 0, 1, 2 删除的时候li[0] 被删除之后. 后⾯面一个就变成了了第0个.

以此类推. 当i = 2的时候. list中只有一个元素. 但是这个时候删除的是第2个 肯定报错啊

经过分析发现.循环删除都不行.不论是用del还是用remove.都不能实现.

pop——————删除最后一个

li = ["蒋阳" ," 侯小青" ,"龙池", "程丽" ,"冯霞"]

for el in li:
li.pop() # pop也不行

print(li) 结果: ["程丽" "候小青"]

只有这样才可以删除

for i in range (0,len(li))----------------循环len(li)次, 然后从后往前删除

​ li.pop ()

print(li)—————— 结果:[]

或者用一个列表来记录你要删除的内容.憨厚循环删除

li = ["蒋阳" ," 侯小青" ,"龙池", "程丽" ,"冯霞"]

li1 = []

for i in li :

​ li1 .append(i)

for i in li1 :

​ li .remove(i)

print (li)

注意 由于删除元素会导致元素索引改变,所以容易出现问题.尽量不要再循环中直接删除元素.可以把要删除的元素添加到另一个集合中然后在批量删除

.tuple 元祖

面试:
tu = (1)
tu1 = ("alex")
tu2 = (1,) #元组

tu = (12,3,4) + (4,5,3,4)
print(tu)

tu = (1,[]) * 3
print(tu)
tu[-1].append(10)
print(tu)

dict

dict中的frome(),可以帮助我们通过list来创建一个dict

dic = dict.fromkeys(["jay", "JJ"], ["周杰伦", "麻花藤"])
print(dic)——————— {'jay': ['周杰伦', '麻花藤'], 'JJ': ['周杰伦', '麻花藤']}

前面列表中的每一项回作为key,后面列表中的内容作为value.生成dict

dic = dict.fromkeys(["jay", "JJ"], ["周杰伦", "麻花藤"])

print(dic)

dic.get("jay").append("胡⼤大")

print(dic) —————— 因为两个键对应的是相同的值 因此改变一个另一个也会改变

结果:
{'jay': ['周杰伦', '麻花藤', '胡⼤大'], 'JJ': ['周杰伦', '麻花藤', '胡⼤大']}

——— 代码中只是更更改了了jay那个列表. 但是由于jay和JJ⽤用的是同⼀个列列表. 所以. 前面那个改了. 后 面那个也会跟着改

dict中元素在迭代过程中是不允许进行删除的

dic = {'k1': 'alex', 'k2': 'wusir', 's1': '⾦老板'} # 删除key中带有'k'的元素
for k in dic:

​ if 'k' in k:
​ del dic[k]
代的时候不不允许进⾏行行删除操作

print(dic)---------错误

要把删除的元素暂时先保存在一个list中,然后循环删除list,再删除

dic = {'k1': 'alex', 'k2': 'wusir', 's1': '⾦老板'}

dic_del_list = []
# 删除key中带有'k'的元素
for i in dic:

​ if 'k' in i :
​ dic_del_list.append(i)
for el in dic_del_list:
​ del dic[el]

print(dic)

类型转换:

元祖=>列表 list(tuple)

列表=>元祖 tuple(list)

list=>str str.join(list)

str=>list str.split()

转换成False的数据

0,"",None,[],(),{},set()==>False

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

死循环
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:
s.pop()
print(s)

猜你喜欢

转载自www.cnblogs.com/x-h-15029451788/p/11329676.html