Python_007天

一.基础数据类型的补充

1.其他类型之间的相互转换

例如:str = int(str) str => int;

   int = list(int) int => list;

   tuple = dict(tuple) tuple => dict;

但是:str => list时用的是str = str.split(元素)

   list => str时用的是str = 元素.join(list)

代码展示:

1 s = "|".join(["美国往事","当幸福来敲门","穿靴子的猫"])
2 print(s)
3 s = s.split("|")
4 print(s)
5 #输出结果:
6 
7 美国往事|当幸福来敲门|穿靴子的猫
8 
9 ['美国往事', '当幸福来敲门', '穿靴子的猫']

二.关于for的一些解释

1.for在运行的过程中,会有一个指针来记录当前循环的元素是哪一个,一开始这个指针指向第0个,

然后获取到第0个,紧接着删除第0个,这个时候,原来是第一个的元素会自动的变成第0个,然后指针向后移动一次,指向1元素,这时所有元素向前移了一位.

2.总结:字典,列表在for循环过程中,不论是del还是remove,pop都不能实现

3.怎样在for循环的过程中删除元素:

代码展示:

1 lst = ["周杰伦","周润发","周星星","马化腾"]
2 li = []
3 for i in lst:
4     if i.startswith(""):
5         li.append(i)
6 for c in li:
7     lst.remove(c)
8 print(lst)
9 #输出结果:['马化腾']

这是把以"周"开头的字符串去除掉;

(1)要新建一个列表,先把符合条件的添加进列表,

(2)然后再遍历该列表,用原来的列表删除遍历到的新列表赋值给变量c的字符串;

*注意转成False的数据:

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

三.set集合

1.set最大的的用处就是去除集合中的重复;set中的元素必须是可哈希的(int,str,tuple,bool);

所以列表,字典,和set(set本身是不可hash的.set是可变的),set中得元素也是无序的;

1 set1 = {'1','alex',2,True,[1,2,3]} # 报错 
2 set2 = {'1','alex',2,True,{1:2}}  # 报错 
3 set3 = {'1','alex',2,True,(1,2,[2,3,4])}  # 报错

2.1 增加

代码展示:

1 s = {"刘嘉玲", '关之琳', "王祖贤"} 
2 s.add("郑裕玲")
3  print(s) 
4 s.add("郑裕玲")    # 重复的内容不不会被添加到set集合中 
5 print(s)
6 #集合和字典长得很像,但是没有key和value;

2.2 删除

s.remove(元素)#直接删除元素;

s.pop()#随机 

3.常用操作:

s1 = {"刘能", "赵四", "⽪皮⻓长⼭山"}

s2 = {"刘科⻓长", "冯乡⻓长", "⽪皮⻓长⼭山"}

# 交集 # 两个集合中的共有元素

print(s1 & s2)  #结果: {'⽪皮⻓长⼭山'}

print(s1.intersection(s2))  # 结果:{'⽪皮⻓长⼭山'}

# 并集

print(s1 | s2) # {'刘科⻓长', '冯乡⻓长', '赵四', '⽪皮⻓长⼭山', '刘能'}

print(s1.union(s2)) # {'刘科⻓长', '冯乡⻓长', '赵四', '⽪皮⻓长⼭山', '刘能'}

# 差集

print(s1 - s2) # {'赵四', '刘能'} 得到第⼀个中单独存在的

print(s1.difference(s2)) # {'赵四', '刘能'} 

# ⼦集

print(s1 < s2) # set1是set2的⼦子集吗? True

print(s1.issubset(s2))

# 超集

print(s1 > s2) # set1是set2的超集吗? False

print(s1.issuperset(s2))

三.深浅拷贝

浅拷贝示意图

  

猜你喜欢

转载自www.cnblogs.com/0627zhou/p/9289412.html
007