python-rong-day06

元组

## 元组: 不可以修改的列表
ls = [i for i in range(10)]
print(ls)
print(type(ls))

t1 = (111, 222, 333, 444, '哈哈', [11, 222 ], 1.1, (22, 33))
print(t1)
print(type(t1))
# 访问: 下标访问
print(t1[0])
# 不能更改
# t1[0] = 999  TypeError: 'tuple' object does not support item assignment
# 元组没有增加, 删除, 更新方法
# 只能访问, 只读, 设计目的是为了数据安全
# 和列表相比速度更快
# 通常数据安全使用元组, 函数的返回值是多个的时候返回元组, 字典的键可以是元组
def show_shape():
    return 333, 666, 888
print(show_shape())

# 元组可以遍历和切片
for x in t1[:5]:
    print(x)

#  元组和列表之间的转换
print(tuple(ls))
print(list(t1))

字典

# 字典 key-value数据结构, 类似于可以自定义索引值的列表
ls = [i for i in range(1, 10)]
print(ls[2])

info = {'name': 'eric', 'gender': 'male', 'score': 90}
print(info)
print(type(info))
# 1. 字典是通过键(key) 访问 value (值)
# 字典本身是无序的, 因为顺序概念在这里没啥意义
print(info['name'])
print(info['gender'])
print(info['score'])
# print(info['money'])KeyError: 'money'
# 也可以访问不存在的键, 但是要用get方法
print(info.get('score', 0))
print(info.get('money')) # 键不存在的时候不会保存, 会返回None
print(info.get('money', 1000)) # 可以设置默认值, 当键不存在时会触发这个默认值
# 2.修改: 通过键访问修改值
info['score'] = 100
print(info)
# 3.增加:
info['height'] = 180
print(info)
# 4. 删除
# del info # 全部删除
# print(info) NameError: name 'info' is not defined
del info['gender']
print(info)
print(info.pop('score'))
print(info)
info.clear()
print(info) # 空字典 {}

字典的典型操作


# 字典的典型操作
info = {'name': 'eric', 'gender': 'male', 'score': 90}
# 获取所有键
print(list(info.keys()))
# 获取所有值
print(list(info.values()))
# 获取所有k-v
print(list(info.items()))
# 元组的第一个值是key, 第二个值是value
# [('name', 'eric'), ('gender', 'male'), ('score', 90)]

# 遍历
# 1. 直接遍历字典名只能得到所有键
# for x in info:
#     print(x)
# 2. 直接遍历字典名只能得到所有键
for x in info:
    print(x, '--->', info[x])
# 3. 使用items()方法
# for x in info.items():
#     print(x)
for k, v in info.items():
    print(k, v)

字典推导式

from random import randint
import string
# 字典推导式
ls = [i for i in range(10)]
print(ls)
# {k:v for 临时 in 迭代对象 if 条件}
dt = {i: i for i in range(10)}
print(dt)
print(type(dt))

dt1 = {f'student{k}': 0 for k in string.ascii_uppercase[:7]}
print(dt1)

dt2 = {f'student{k}': randint(10, 100) for k in string.ascii_uppercase[:7]}
print(dt2)

# 编写函数 将生成的成绩字典进行筛选, 将及格的同学成绩进行返回
def select(dt):
    # res = {}
    # for k, v in dt.items():
    #     if v >= 60:
    #         res[k] = v
    # return res
   return {k: v for k, v in dt.items() if v>=60}
print(select(dt2))

练习统计列表中单词出现的次数

# 练习统计列表中单词出现的次数
word_ls = ['Java', 'Python', 'C++', 'Python', 'C++', 'Python', 'C++', 'Python','Java', 'Python']

# 使用字典表示上述结果是最佳选择
def count_word(ls):
    counts = {}
    # 遍历列表, 初始化字典  {'Java': 0, 'Python':0}
    for word in ls:
        counts[word] = 0
    print(counts)
    # 再次遍历列表统计单词个数
    for word in ls:
        counts[word] = counts[word] + 1

    return counts
print(count_word(word_ls))# {'Java': 4, 'Python':5}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值