python进修04---字典

python进修04----字典

1. 字典的五种创建形式

1. {key: value}
2. dict([(k, v), (k, v)]) dict(((k, v)(k, v)))
3. dict(key = value)
4. 字典推导式
5. fromkeys

# 第一种: {key: value} 
dict1 = {'one': 1, 'two': 2}

# 第二种: dict(((k, v)(k, v)))     dict([(k, v)(k, v)])
dict2 = dict((('three', 3)('four', 4)))
dict3 = dict([('five', 5)('six', 6)])

# 第三种: dict(key = value)
dict4 = dict(seven = 7, eight = 8)

# 第四种: 字典推导式
ls1 = ['nine', 'ten', 'eleven']
ls2 = [9, 10, 11]
dict5 = {ls1[i]: ls2[i] for i in range(len(ls1))}

#第五种: formkeys
# 1. value值为None
dict6 = dict.formkeys(['twelve', 'thirteen'])
# 2. value有值
dict7 = dict.formkeys(['fourteen', 'fifteen'], 15)

2. 字典的操作方式(9种)

1. setdefault的使用
2. pop的使用
3. clear清空
4. get()的使用
5. keys()的使用
6. copy的使用方法(浅拷贝)
7. value()的使用
8. items()的使用
9. 字典的合并update

# 1. setdefault的使用
# 有则不变, 无则增加
dict1 = {'one': 1, 'two': 2}
dict1.setdefault('one', 1)   # 有则不变
dict1.setdefault('three', 3)   # 无则增加
print(dict1)

# 2. pop的使用
# 按照键删除键值对, 有返回值
# 如果设置了第二个参数, 则无论字典中有无此键都不会报错
dict2 = {'three': 3, 'four': 4}
a = dict2.pop('three')
print(dict2)
print(a)

# 3. clear()清空
dict3 = {'five': 5, 'six': 6}
a = dict3.clear()
print(a)

# 4. get()的使用
dict4 = {'seven': 7, 'eight': 8, 'nine': [9, 10, 11]}
l1 = dict4.get('nine')
print(l1)

# 5. keys()的使用
dict5 = {'ten': 10, 'eleven': 11, 'twelve': 12}
print(dict5.keys())

# 6. 字典的copy()方法
dict6 = {'thirteen': 13, 'fourteen': 14, 'fifteen': 15}
dict7 = dict6.copy()
print(dict6, '\n', dict7)

# 7. values()的使用
dict8 = {'sixteen': 16, 'seventeen': 17, 'eighteen': 18}
print(dict8.values())

# 8. items()的使用
dict9 = {'nineteen': 19, 'twenty': 20, 'twenty-one':21}
print(dict9.items())

# 9. 字典的合并update
dict10 = {'twenty-two': 22, 'twenty-three': 23, 'twenty-four':24}
dict11 = {'twenty-five': 25, 'twenty-six':26, 'twenty-seven':27}
dict10.update(dict11)
print(dict10)

字典综合案例

1. 用户信息管理

需求:
要保存用户注册的信息, 并实现相关的增删改查方法

user_dict_list = []
user_name1 = {'name': '张三', 'pwd': 10010}
user_dict_list.append(user_name1)
user_name2 = {'name': '李四', 'pwd': 10011}
user_dict_list.append(user_name2)
user_name3 = {'name': '王五', 'pwd': 10100}
user_dict_list.append(user_name3)
for user_dict1 in user_dict_list:
    if user_dict1['name'] == '李四':
        print('查询到李四的密码:', user_dict1['pwd'])
        break
for user_dict2 in user_dict_list:
    if user_dict2['name'] == '张三':
        user_dict2['pwd'] = 123456
        print('更改李四的密码完成!', user_ dict_list )
        break
for user_dict3 in user_dict_list:
    if user_dict3['name'] == '李四':
        user_dict_list.remove[user_dict3]
        break
        print('删除李四后:', user_dict_list)
2. 省市数据查询

**需求:

  1. 打印所有省份名称
  2. 提示用户输入一个省份名称
  3. 打印该省份的所有城市**
city_dict = {
    '北京': ['北京'],
    '广东': ['广州', '深圳', '珠海', '汕头', '韶关', '佛山', '江门', '湛江', '茂名', '肇庆', '惠州', '梅州', '汕尾', '河源', '阳江', '清远', '东莞', '中山', '潮州', '揭阳', '云浮'],
    '上海': ['上海'],
    '天津': ['天津'],
    '重庆': ['重庆'],
    '辽宁': ['沈阳', '大连', '鞍山', '抚顺', '本溪', '丹东', '锦州', '营口', '阜新', '辽阳', '盘锦', '铁岭', '朝阳', '葫芦岛'],
    '江苏': ['南京', '苏州', '无锡', '常州', '镇江', '南通', '泰州', '扬州', '盐城', '连云港', '徐州', '淮安', '宿迁'],
    '湖北': ['武汉', '黄石', '十堰', '荆州', '宜昌', '襄樊', '鄂州', '荆门', '孝感', '黄冈', '咸宁', '随州', '恩施土家族苗族自治州', '仙桃', '天门', '潜江', '神农架林区'],
    '四川': ['成都', '自贡', '攀枝花', '泸州', '德阳', '绵阳', '广元', '遂宁', '内江', '乐山', '南充', '眉山', '宜宾', '广安', '达州', '雅安', '巴中', '资阳', '阿坝藏族羌族自治州', '甘孜藏族自治州', '凉山彝族自治州'],
    '陕西': ['西安', '铜川', '宝鸡', '咸阳', '渭南', '延安', '汉中', '榆林', '安康', '商洛'],
    '河北': ['石家庄', '唐山', '秦皇岛', '邯郸', '邢台', '保定', '张家口', '承德', '沧州', '廊坊', '衡水'],
    '山西': ['太原', '大同', '阳泉', '长治', '晋城', '朔州', '晋中', '运城', '忻州', '临汾', '吕梁'],
    '河南': ['郑州', '开封', '洛阳', '平顶山', '安阳', '鹤壁', '新乡', '焦作', '濮阳', '许昌', '漯河', '三门峡', '南阳', '商丘', '信阳', '周口', '驻马店'],
    '吉林': ['长春', '吉林', '四平', '辽源', '通化', '白山', '松原', '白城', '延边朝鲜族自治州'],
    '黑龙江': ['哈尔滨', '齐齐哈尔', '鹤岗', '双鸭山', '鸡西', '大庆', '伊春', '牡丹江', '佳木斯', '七台河', '黑河', '绥化', '大兴安岭地区'],
    '内蒙古': ['呼和浩特', '包头', '乌海', '赤峰', '通辽', '鄂尔多斯', '呼伦贝尔', '巴彦淖尔', '乌兰察布', '锡林郭勒盟', '兴安盟', '阿拉善盟'],
    '山东': ['济南', '青岛', '淄博', '枣庄', '东营', '烟台', '潍坊', '济宁', '泰安', '威海', '日照', '莱芜', '临沂', '德州', '聊城', '滨州', '菏泽'],
    '安徽': ['合肥', '芜湖', '蚌埠', '淮南', '马鞍山', '淮北', '铜陵', '安庆', '黄山', '滁州', '阜阳', '宿州', '巢湖', '六安', '亳州', '池州', '宣城'],
    '浙江': ["杭州", '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州', '丽水'],
    '福建': ['福州', '厦门', '莆田', '三明', '泉州', '漳州', '南平', '龙岩', '宁德'],
    '湖南': ['长沙', '株洲', '湘潭', '衡阳', '邵阳', '岳阳', '常德', '张家界', '益阳', '郴州', '永州', '怀化', '娄底', '湘西土家族苗族自治州'],
    '广西': ['南宁', '柳州', '桂林', '梧州', '北海', '防城港', '钦州', '贵港', '玉林', '百色', '贺州', '河池', '来宾', '崇左'],
    '江西': ['南昌', '景德镇', '萍乡', '九江', '新余', '鹰潭', '赣州', '吉安', '宜春', '抚州', '上饶'],
    '贵州': ['贵阳', '六盘水', '遵义', '安顺', '铜仁地区', '毕节地区', '黔西南布依族苗族自治州', '黔东南苗族侗族自治州', '黔南布依族苗族自治州'],
    '云南': ['昆明', '曲靖', '玉溪', '保山', '昭通', '丽江', '普洱', '临沧', '德宏傣族景颇族自治州', '怒江傈僳族自治州', '迪庆藏族自治州', '大理白族自治州', '楚雄彝族自治州', '红河哈尼族彝族自治州', '文山壮族苗族自治州', '西双版纳傣族自治州'],
    '西藏': ['拉萨', '那曲地区', '昌都地区', '林芝地区', '山南地区', '日喀则地区', '阿里地区'],
    '海南': ['海口', '三亚', '五指山', '琼海', '儋州', '文昌', '万宁', '东方', '澄迈县', '定安县', '屯昌县', '临高县', '白沙黎族自治县', '昌江黎族自治县', '乐东黎族自治县', '陵水黎族自治县', '保亭黎族苗族自治县', '琼中黎族苗族自治县'],
    '甘肃': ['兰州', '嘉峪关', '金昌', '白银', '天水', '武威', '酒泉', '张掖', '庆阳', '平凉', '定西', '陇南', '临夏回族自治州', '甘南藏族自治州'],
    '宁夏': ['银川', '石嘴山', '吴忠', '固原', '中卫'],
    '青海': ['西宁', '海东地区', '海北藏族自治州', '海南藏族自治州', '黄南藏族自治州', '果洛藏族自治州', '玉树藏族自治州', '海西蒙古族藏族自治州'],
    '新疆': ['乌鲁木齐', '克拉玛依', '吐鲁番地区', '哈密地区', '和田地区', '阿克苏地区', '喀什地区', '克孜勒苏柯尔克孜自治州', '巴音郭楞蒙古自治州', '昌吉回族自治州', '博尔塔拉蒙古自治州', '石河子', '阿拉尔', '图木舒克', '五家渠', '伊犁哈萨克自治州'],
    '香港': ['香港'],
    '澳门': ['澳门'],
    '台湾': ['台北市', '高雄市', '台北县', '桃园县', '新竹县', '苗栗县', '台中县', '彰化县', '南投县', '云林县', '嘉义县', '台南县', '高雄县', '屏东县', '宜兰县', '花莲县', '台东县', '澎湖县', '基隆市', '新竹市', '台中市', '嘉义市', '台南市']
}
for province in city_dict.keys():
    print(provice)
province_name = input('请输入城市名称:')
print(city_dict[province_name])
for city in city_dict[province]:
    print(city)
    

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值