# lst=(“亚历克斯”,“双边带”、“wusir”,“xsb”) # s=" . join (lst) #打印(s) # alexdsbwusirxsb
需要把字符串转换成列表分裂
把列表转化为字符串加入
# s=癮lex_dsb_wusir_xsb” # lst=s.split(“_”) #列表 #打印(lst)
. join(“#打印(“*”周润发”))#用迭代的方式进行拼接 # #周*润*发
# lst=["篮球”、“排球”,“乒乓球”,“足球”、“电子竞技”,“台球”) # lst的el: # lst.remove (el) #打印(lst) #['排球”,“足球”、“台球”)
会发现删不干净原因是:删除一个。元素的索引重新排的序,为循环向后走一个,就漏掉一个
删掉了索引是0的元素,然后索引是1的元素补充到索引为0的位置上,然后索引指向1,
就漏掉了以前的索引为1的元素因为索引为一的元素在第二次循环的时候已经掉到了索引0的位置
正确的删除操作:
# lst=["篮球”、“排球”,“乒乓球”,“足球”、“电子竞技”,“台球”) #我的范围(len (lst)): # 0, 1, 2, 3, 4 # lst.pop (0) #打印(lst) #[] #永远删索引是0元素 #我的范围(len (lst)): # lst.pop () #打印(lst) #[] #从最后一个删
最合理的删除方法:
1、先把需要删除的元素写在一个新的列表中
2 .循环这个新列表,删除老列表
fromkeys()帮我们创建字典用
#把第一个参数进行迭代拿到的每一项作为关键和后面组的值成字典
# d=dict.fromkeys(“张无忌”,“赵”敏)#创建字典 #打印(d) #{“张”:“赵敏”,“无”:“赵敏”、“忌”:“赵敏”}
坑1
#返回新字典,和原来的字典没有关系
# dic={} # d=dic.fromkeys(“风扇哥”,“很困”) #打印(dic) # {} #打印(d) #{“风”:“很困”、“扇”:“很困的,“哥”:“很困'}
#坑2
#如果价值是可变的数据类型,
#那么其中一个关键的对应的价值执行更改操作,其他的也跟着改变
d=dict.fromkeys(“胡辣汤”,[]) 打印(d) #{‘胡’:[],“辣”:[],“汤”:[]} #打印(id (d["胡"]))# 1797375051912 #打印(id (d["辣"]))# 1797375051912 #打印(id (d(“汤”)))# 1797375051912 #说明这几个还是同一个[]所以对其中一个进行改变别的也进行相应的改变 # d(“胡”).append(“湖南特色”) #打印(d) #{“胡”:[湖的南特色的),“辣”:[湖的南特色的),“汤”:[湖的南特色的]}
先来看一下这个问题
从上到下只有一个列表创建
# lst1=["胡辣汤”、“麻辣香锅”、“灌汤包”,“油泼面”) # lst2=lst1 #并没有产生新对象。只是一个指向(内存地址)的赋值 #打印(id (lst1)) # 2253612239048 #打印(id (lst2)) # 2253612239048 # lst1.append(“葫芦娃”) #打印(lst1) #['胡辣汤”、“麻辣香锅”、“灌汤包”,“油泼面”、“葫芦娃”) #打印(lst2) #['胡辣汤”、“麻辣香锅”、“灌汤包”,“油泼面”、“葫芦娃”)
用图来解释
# lst1=["胡辣汤”、“麻辣香锅”、“灌汤包”,“油泼面”) # lst2=lst1.copy() #拷贝,抄作业,可以帮我们创建新的对象,和原来一模一样,浅拷贝 #打印(id (lst1)) # 2232732993736 #打印(id (lst2)) # 2232732993672 # # lst1.append(“葫芦娃”) #打印(lst1) #打印(lst2)
用图来解释
# lst1=["胡辣汤”、“灌汤包”,“油泼面”,“麻辣香锅”,(“长白山”,“白洋淀”,“黄鹤楼”]] # lst2=lst1.copy() #浅拷贝,只拷贝第一层内容 # #打印(id (lst1)) # 1199044806792 #打印(id (lst2)) # 1199044806984 #打印(lst1) #打印(lst2) # # lst1 [4] .append(“葫芦娃”) #打印(lst1) #打印(lst2)浅谈python的深浅拷贝以及fromkeys的用法