第四章:tuple、dict、set的增删改查
小点:Len统计list中有多少个元素。
规则:a为空的话,在表达式里面是错误的,如果有元素的话就是True。
>>> if a:
... print("not a null list ")
... else:
... print("a null list")
...
not a null list
>>> a
[0]
1、“bool”查看True/False
⚠️只要是空的就是False,只要有数值就为True(0要做特殊的处理)
>>> bool(1)
True
>>> bool(None)
False
练习题:求1+2+3.、、、、+10的和?
sum=0
for i in range(11):
sum=sum+i
print(i,sum)
2、tuple-元组
元组与列表的区别,不能改遍元组中的对象。
>>> a=(1,"3",2,[20,34,323],{1:10})
>>> a
(1, '3', 2, [20, 34, 323], {1: 10})
>>> del a[3][0]
>>> a
(1, '3', 2, [34, 323], {1: 10})
>>> a[3][1]=23322
>>> a
(1, '3', 2, [34, 23322], {1: 10})
>>> a[4][1000]="XXX"
>>> a
(1, '3', 2, [34, 23322], {1: 10, 1000: 'XXX'})
⚠️单个元素要做元组的时候,需要在元素后面加逗号
>>> a=(1)
>>> type(a)
<class 'int'>
>>> a=(1,)
>>> type(a)
<class 'tuple'>
>>> a=()
>>> type(a)
<class 'tuple'>
>>> a=("a")
>>> type(a)
<class 'str'>
>>> a=("a",)
>>> type(a)
<class 'tuple'>
>>> a = 1,2
>>> print(a)
(1, 2)
>>> type(a)
<class 'tuple'>
3、dict-字典
字典无顺序,成对的方式存在,前面的是key后面的是value
(1)dict—增加
>>> d = {}
>>> type(d)
<class 'dict'>
>>> d={1:2,"a":100}
>>> d
{1: 2, 'a': 100}
>>> d["XX"]=434.23
>>> d
{1: 2, 'a': 100, 'XX': 434.23}
(2) dict-改
>>> d
{1: 2, 'a': 100, 'XX': 434.23}
>>> d[1]="ab"
>>> d
{1: 'ab', 'a': 100, 'XX': 434.23}
>>>
(3)dict-删除
>>> d
{1: 'ab', 'a': 100, 'XX': 434.23}
>>> del d["XX"]
>>> d
{1: 'ab', 'a': 100}
>>> d[1]
'sds'
>>> d['ds']
100
>>> d.pop('ds')
100
>>> d
{1: 'sds'}
>>> del d[1]
>>> d
{}
>>> d={1:1,2:2,3:3,4:4}
>>> d
{1: 1, 2: 2, 3: 3, 4: 4}
>>> d[1]
1
>>> d.keys()
dict_keys([1, 2, 3, 4])
>>> list(d.keys())
[1, 2, 3, 4]
>>> type(d.keys())
<class 'dict_keys'>
4、字典key和value的遍历
⚠️字典key的特点:不能重复,不能使用可变的对象
>>> d
{1: 1, 2: 2, 3: 3, 4: 4}
>>> type(d.keys())
<class 'dict_keys'>
>>> for key in d.keys():
... print(key)
...
1
2
3
4
>>> for value in d.values():
... print(value)
...
1
2
3
4
>>> for key,value in d.items():
... print(key,":",value)
...
1 : 1
2 : 2
3 : 3
4 : 4
>>> print(1)
1
>>> print("a")
a
>>> print("a",end="")
a>>> print("b",end="")
b>>> print("b","c",end="")
b c>>> print("b","c","d",end="")
b c d>>> print("b","c","d")
b c d
>>>
5、fromkeys快速生成字典对象的key和value键值对
>>> d={}
>>> d.fromkeys([1,2,3])
{1: None, 2: None, 3: None}
>>> d.fromkeys([1,2,3],"a")
{1: 'a', 2: 'a', 3: 'a'}
>>> d.fromkeys([1,2,3],"a")
{1: 'a', 2: 'a', 3: 'a'}
>>> d=dict.fromkeys([1,2,3],"a")
>>> d
{1: 'a', 2: 'a', 3: 'a'}
6、update
>>> d=dict.fromkeys([1,2,3])
>>> d
{1: None, 2: None, 3: None}
>>> d.update({4:4,5:5,6:6})
>>> d
{1: None, 2: None, 3: None, 4: 4, 5: 5, 6: 6}
>>> d.update([1,2,3,4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot convert dictionary update sequence element #0 to a sequence
>>> d.update(((7,7),(8,8)))
>>> d
{1: None, 2: None, 3: None, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8}
>>> d
{1: None, 2: None, 3: None, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
>>> d=dict(name="sunqiainli",sex="wo")
>>> d
{'name': 'sunqiainli', 'sex': 'wo'}
>>> d = {x:x**2 for x in (2,4,6)}
>>> d
{2: 4, 4: 16, 6: 36}
>>>
面试题:统计一句话中,请统计一下一共出现了多少个单词?每个英文单词出现的次数,
例如:I am a boy ,I am a good man!
思路:1、首先创建一个字符串,然后用Split分割,还有创建一个空的健值对
2、循环这句话的每一个字母,首次出现的加入为key,非首次加入的次数加1.
3、 最后输出循环后的key和value
a='I am a boy.I am a good man!'
def letter(a):
if not isinstance(a,str):
print("the parameter is not str")
return 0
result=0
for i in a:
if i in "abcdefghigklmnopqrstuvwxyz":
result+=1
return result
print(letter(a))