前言
在数据类型这,字典的地位毋庸置疑,所以今天先分享分享这块的相关练习,再分享所学的知识
字典的相关练习
- 请将列表中的每个元素通过"_"连接起来
user = ['大黑哥', 'ly', 757, 'da']
s = ""
for i in user:
s = s + str(i) + "_" #join()无法使用 ("可迭代对象") 666不为可迭代对象
print(s[: -1])
- 请将元组 v1 = (11,22,33)中的所有元素追加到列表 v2 = [44,55,66]中
v1 = (11, 22, 33)
v2 = [44, 55, 66]
for i in v1:
v2.append(i)
print(v2)
- 请将元组v1 = (11,22,33,44,55,66,77,88,99)中的所有偶数索引位置的元素追加到新列表中
lst = []
v1 = (11, 22, 33, 44, 55, 66, 77, 88, 99)
v2 = v1[::2]
for i in v2:
lst.append(i)
print(v2)
- 将字典的键和值分别追加到key_list和value_list两个列表中
dic = {"da": 33, "ec": 22, "dai": "dac"}
key_list = []
value_list = []
for i in dic:
key_list.append(i)
value_list.append(dic[i])
print(key_list)
print(value_list)
- 有字符串"k: 1|k1: 2|k2: 3 |k3: 4"处理成字典{‘k’:1,‘k2’:1…}
写代码
dic = {}
s = "k: 1|k1:2|k2:3 |k3:4"
for i in s.replace(" ", "").split("|"): #['k:1', 'k1:2', 'k2:3', 'k3:4']
k, v = i.split(":")
dic[k] = v
print(dic, type(dic))
- 有如下值 li = [11,22,33,44,55,66,77,88,99]
将所有大于66的值保存至字典的第一个key对应的列表中,将小于66的值保存至第二个key对应的列表中
dic = {"key1": [], "key2": []}
li = [11, 22, 33, 44, 55, 66, 77, 88, 99]
for i in li:
if i >= 66:
dic["key1"].append(i)
else:
dic["key2"].append(i)
print(dic)
集合
-
集合 – set
-
没有值的字典
- 定义集合:s = {“ly”, False, “XA”}
-
无序 – 不支持索引
-
s = {"ly", False, "XA"} print(s) #{False, 'XA', 'ly'}
-
天然去重
-
#去重下面列表并输出 lst = [1, 1, 4, 7, 4, 24, 32, 31] print(list(set(lst))) #[32, 1, 4, 7, 24, 31]
集合的增删改查
-
-
增
-
s.add("67") #只能增加一个 print(s) s.update("今天") #迭代增加 print(s)
-
-
删
-
s.pop() print(s) print(s.pop()) #有返回值,随机删
-
s.remove("今") #指定元素删除
-
s.clear() print(s) #输出set() --空集合
-
-
改
- 先删再加
-
查
-
for i in {1,2,3}: print(i)
-
集合的其他操作
-
交集 &
-
s1 = {1, 2, 3, 4, 5, 6} s2 = {5, 6, 7, 8, 9, 0} print(s1 & s2)
-
-
并集 |
-
print(s1 | s2)
-
-
差集 -
-
print(s1 - s2)
-
-
对称差集/反交集 ^
-
print(s1 ^ s2)
-
-
父集 >
-
print(s1 > s2)
-
-
子集 <
-
print(s1 < s2) #父集子集为判断 输出True or False
-
-
冻结集合
-
print(frozenset(s1)) #即让可变的集合不可变
-
集合这块怎么说,没啥多大用处,主要了解他去重的应用就可以了