python学习打卡task5

一、学习知识点概要

  1. 字典
  • 定义
  • 创建与访问
  • 内置方法
  1. 集合
  • 创建
  • 访问集合中的值
  • 内置方法
  • 转换
  • 不可变集合
  1. 序列
  • 内置函数

    二、学习内容

  1. 字典

  • 定义

字典 是无序的 键:值(`key:value`)对集合,键必须是互不相同的(在同一个字典之内)。

写作:「键值对」-- 键:值 (`key:value`)

  • 创建和访问 

通过字符串或数值作为`key`来创建字典。

通过构造函数`dict`来创建字典。即`dict()` 创建一个空的字典

注意:一个`key`只能对应一个`value`,多次对一个`key`放入 `value`,后面的值会把前面的值冲掉。

  • 内置方法

 

2.集合

  • 创建

- 先创建对象再加入元素。

- 在创建空集合的时候只能使用`s = set()`,因为`s = {}`创建的是空字典。

注意:重复元素在`set`中会被自动被过滤。

- 使用`set(value)`工厂函数,把列表或元组转换成集合。

  • 访问集合中的值

- 可以使用`len()`內建函数得到集合的大小。

- 可以使用`len()`內建函数得到集合的大小。

- 可以通过`in`或`not in`判断一个元素是否在集合中已经存在。

  • 集合内置的方法

 

  • 集合的转换

例如:

se = set(range())

li = list(se)

tu = tuple(se)

  • 不可变集合

- `frozenset([iterable])` 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

需要注意的是`frozenset`仍然可以进行集合操作,只是不能用带有`update`的方法

3.序列

  • 内置方法

 


三、学习疑问与解答

练习题

```python

dic = {

    'python': 95,

    'java': 99,

    'c': 100

    }

```

用程序解答下面的题目

- 字典的长度是多少

```python

dic = {

    'python': 95,

    'java': 99,

    'c': 100

     }

print("字典长度 : %d" % len(dic)) 

# 字典长度 : 2

```

- 请修改'java' 这个key对应的value值为98

```python

dic = {   

'python': 95,

    'java': 99,

    'c': 100

     }

dic2 = {'java': 98}

dic.update(dic2)print(dic)  #

```

- 删除 c 这个key

```python

dic = {

    'python': 95,

    'java': 99,

    'c': 100

     }

print(dic.pop(c), dic)  #

- 增加一个key-value对,key值为 php, value是90

```python

dic = {    'python': 95,

    'java': 99,

    'c': 100}

dic2 = {'php': '90'}

dic.update(dic2)print(dic)  #

```

- 获取所有的key值,存储在列表里

```python

dic = {    'python': 95,

    'java': 99,

    'c': 100}

print(dic.keys())

# dict_keys(['python','java','c'])

print(list(dic.keys()))

# ['python','java','c']

```

- 获取所有的value值,存储在列表里

```python

dic = {    'python': 95,

    'java': 99,

    'c': 100}

print(dic.values())

# dict_values(95,99,100'])

print(list(dic.values()))

# [95,99,100]

```

- 判断 javascript 是否在字典中

```python

dic = {    'python': 95,

    'java': 99,

    'c': 100}

# in 检测键 javascript 是否存在

if 'javascript' in dic:

    print("键 javascript 存在")

else:

    print("键 javascript 不存在")

#

```

- 获得字典里所有value 的和

```python

dic = {

    'python': 95,

    'java': 99,

    'c': 100}

print(sum(dic.value))  #

- 获取字典里最大的value

```python

dic = {    'python': 95,

    'java': 99,

    'c': 100}

print(max(dic.value))  #

- 获取字典里最小的value

```python

dic = {    'python': 95,

    'java': 99,

    'c': 100}

print(min(dic.value))  #

- 字典 dic1 = {'php': 97}, 将dic1的数据更新到dic中

```python

dic = {    'python': 95,

    'java': 99,

    'c': 100}

dic1 = {'php': 97}

print(dic)  #

```

2、字典中的value  

有一个字典,保存的是学生各个编程语言的成绩,内容如下  

```

data = {

        'python': {'上学期': '90', '下学期': '95'},       

        'c++': ['95', '96', '97'],

        'java': [{'月考':'90', '期中考试': '94', '期末考试': '98'}]

        }

```  

各门课程的考试成绩存储方式并不相同,有的用字典,有的用列表,但是分数都是字符串类型,请实现函数`transfer_score(score_dict)`,将分数修改成int类型  

```python

   def transfer_score(data):

    # your code here

```

**练习题**:

1. 怎么表示只包含⼀个数字1的元组。

```python

num = {1}

print(tuple(num))  # <class 'tuple'>

```

2. 创建一个空集合,增加 {‘x’,‘y’,‘z’} 三个元素。

```python

basket=set()

basket.add('x'')

basket.add('y')

basket.add('z')

print(basket)  #

```

3. 列表['A', 'B', 'A', 'B']去重。

```python

lst = ['A', 'B', 'A', 'B]

temp = []

for item in lst:

    if item not in temp:       

       temp.append(item)

print(temp)  #

a = set(lst)

print(list(a))  #

```

4. 求两个集合{6, 7, 8},{7, 8, 9}中不重复的元素(差集指的是两个集合交集外的部分)。

```python

a = set(6,7,8')

b = set(7,8,9)

print(a)  # {}

print(b)  # {}

c = a.difference(b)

print(c)  # {}

print(a - b)  # {}

print(a)  # {}

a.difference_update(b)print(a)

  # {}

```

5. 求{'A', 'B', 'C'}中元素在 {'B', 'C', 'D'}中出现的次数。

```python

a = set(['A', 'B', 'C'])

b = set (['B', 'C', 'D'])

 for a in len(b)

print(len(a))  #

```

**练习题**:

1. 怎么找出序列中的最⼤、⼩值?

例如:

```python

print(max(1, 2, 3, 4, 5))  # 5

print(max([-8, 99, 3, 7, 83]))  # 99

print(max('IloveLsgoGroup'))  # v

```

```python

print(min(1, 2, 3, 4, 5))  # 1

print(min([-8, 99, 3, 7, 83]))  # -8

print(min('IloveLsgoGroup'))  # G

```

2. sort() 和 sorted() 区别

①sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。

②list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

③sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)。

3. 怎么快速求 1 到 100 所有整数相加之和?

- `sum(iterable[, start=0])` 返回序列`iterable`与可选参数`start`的总和。

4. 求列表 [2,3,4,5] 中每个元素的立方根。

```python

i= [2,3,4,5]

for i, in i**3:

    print(i)

```

5. 将[‘x’,‘y’,‘z’] 和 [1,2,3] 转成 [(‘x’,1),(‘y’,2),(‘z’,3)] 的形式。

```python

a =[‘x’,‘y’,‘z’]

b = list(enumerate(a, 1))

print(b)  # [(‘x’,1),(‘y’,2),(‘z’,3)]


四、学习思考与总结

这次的知识点具有规律性,虽然多但也比较好记,学习内容也越来越偏向操作,进度适中。最近是考试月了,有些抽不出时间复习之前的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值