基础数据类型补充

?. 基础数据类型补充
  ?先关于int和str在之前的学习中已经讲了80%以上了. 所以剩下的??看?看就可以了.我们补充给?个字符串基本操作

li = ["李嘉诚", "麻花藤", "?海峰", "刘嘉玲"]
s = "_".join(li)
print(s)
li = "?花?闺?"
s = "_".join(li)
print(s)

列表:
    循环删除列表中的每?个元素

li = [11, 22, 33, 44]
for e in li:
li.remove(e)
print(li)
结果:
[22, 44]

分析原因:

for的运?过程. 会有?个指针来记录当前循环的元素是哪?个, ?开始这个指针指向第0个. 然后获取到第0个元素. 紧接着删除第0个. 这个时候. 原来是第?个的元素会?动的变成第0个. 然后指针向后移动?次, 指向1元素. 这时原来的1已经变成了0, 也就不会被删除了.

?pop删除试试看:

or 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呢?

for el in li:
li.pop() # pop也不?
print(li)
结果:
[11, 22]

只有这样才是可以的:

for i in range(0, len(li)): # 循环len(li)次, 然后从后往前删除
  li.pop()
print(li)

或者. ?另?个列表来记录你要删除的内容. 然后循环删除

li = [11, 22, 33, 44]
del_li = []
for e in li:
  del_li.append(e)
for e in del_li:
  li.remove(e)

print(li)

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

dict中的fromkey(),可以帮我们通过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]  # dictionary changed size during iteration, 在循环迭代的时候不允许进?删除操作
print(dic)

那怎么办呢? 把要删除的元素暂时先保存在?个list中, 然后循环list, 再删除

dic = {‘k1‘: ‘alex‘, ‘k2‘: ‘wusir‘, ‘s1‘: ‘??板‘}
dic_del_list = []
# 删除key中带有‘k‘的元素
for k in dic:
  if ‘k‘ in k:
    dic_del_list.append(k)
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

原文地址:https://www.cnblogs.com/Ajie-boby/p/10217097.html

时间: 2024-10-13 15:39:07

基础数据类型补充的相关文章

python基础04/基础数据类型补充/以后会遇到的坑/二次编码

python基础04 内容大纲 基础数据类型补充 以后会遇到的坑 二次编码 1.基础数据类型补充 1.1 字符串(str) str: 不可变 1.1 首字母大写: # name = "alex" # name1 = name.capitalize() # print(name1) 1.2 每个单词首字母大写 # name = "alex wusir" # print(name.title()) 1.3 大小写反转 # name = "Alex"

python基础数据类型补充以及编码的进阶

一. 基础数据类型补充内容 1.1 字符串 字符串咱们之前已经讲了一些非常重要的方法,剩下还有一些方法虽然不是那么重要,但是也算是比较常用,在此给大家在补充一些,需要大家尽量记住. #captalize :首字母大写 #swapcase :大小写翻转 #title :每个单词的首字母大写 #center :内同居中,总长度,空白处填充 #寻找字符串中的元素是否存在 #find :返回的找到的元素的索引,如果找不到返回-1 #index :返回的找到的元素的索引,找不到报错. #captalize

七. 基础数据类型补充内容

一. 基础数据类型补充内容 1.1 字符串 字符串咱们之前已经讲了一些非常重要的方法,剩下还有一些方法虽然不是那么重要,但是也算是比较常用,在此给大家在补充一些,需要大家尽量记住. #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='taibai say hi' print(msg.title()) #每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret

python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝

1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "?海峰", "刘嘉玲"] s = "_".join(li) print(s) li = "?花?闺?" s = "_".join(li) print(s) 列表: 循环删除列表中的每?个元素 li = [11, 22, 33, 44] for e in li: li.remove(e) print(li

基础数据类型补充与总结

目录 基础数据类型补充与总结 整型 字符串 列表 元组 字典 类型转换 基础数据类型总结 基础数据类型补充与总结 整型 .bit_length 方法用来计算整型数字转换为二进制所占的位数: a = 10 print(a.bit_length()) 输出的结果为: 4 这个方法的意思是,10 转换为二进制数是 1010,一共会占 4 位. 字符串 .capitalize() 方法 .capitalize() 方法用来将字符串的首字母大写: s = 'alEX wusir' s1 = s.capit

python基础数据类型补充以及编码进阶

01 内容大纲 基础数据类型的补充 数据类型之间的转换 编码的进阶 02 具体内容: 数据类型的补充: str # str :补充的方法练习一遍就行. s1 = 'taiBAi' # capitalize 首字母大写,其余变小写 print(s1.capitalize()) # swapcase 大小写翻转 print(s1.swapcase()) # title 每个单词的首字母大写 msg= 'taibai say3hi' print(msg.title()) s1 = 'barry' #

基础数据类型之集合和深浅copy,还有一些数据类型补充

集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系测试,测试两组数据之前的交集.差集.并集等关系. #关于集合和波尔值之间的苟苟且且# set ={1,2,3,4,5,True,(1,2,3),} #集合具有自动去重和去空格功能# set.add(False)# set.add(True) #打印结果显示,没有Teue,应该是集合内部的数字和元组不

深浅拷贝和基础类型补充

1. 基础数据类型补充 大多数的基本数据类型的知识.已经学完了 join() "*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串 split() 切割. 切割的结果是列表 列表和字典: 都不能在循环的时候直接删除 把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典) fromkeys() 坑1: 返回新字典. 不会更改老字典 坑2: 当value是可变的数据类型. 各个key

python之数据类型补充、集合、深浅copy

一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址. 小数据池: 前提:int,str,bool 1,节省内存. 2,提高性能和效率. 小数据池是什么? 在内存中,创建一个'池',提前存放了 -5 ~256 的整数,一定规则的字符串和bool值. 后续程序中,如果设置的变量指向的是小数据池的内容,那么就不会再内存中重新创建. 小数据池与代码块的关系