python 字典 列表老是记不住_day07 Python中列表和字典会遇到的坑

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# @Author: fhb

# @Date : 2018/10/25

# @Desc :

## 循环删除列表坑

lst = ["王大锤", "王有才", "张小白", "刘大哥"]

# 清空这个列表

# lst.clear()

for el in lst:

lst.remove(el) # 删除是不彻底的。 原因是每次删除都会导致元素的移动。 每次都会更新一次索引

print(lst) # ['王有才', '刘大哥']

# 把要删除的内容记录在一个新列表中

new_lst = []

for el in lst:

new_lst.append(el)

# 循环这个新列表. 删除原来的列表

for el in new_lst: # 不会导致循环的列表的元素移动问题

lst.remove(el) # 注意, 删除的是老列表

lst = ["王大锤", "王有才", "张小白", "刘大哥"]

# 删除掉姓王的

new_lst = [] # 装要删除的内容

for el in lst:

if el.startswith("王"): # 判断字符串是否以xxx开头

new_lst.append(el)

# 执行删除

for el in new_lst:

lst.remove(el)

print(lst)

## 循环删除字典坑

dic = {"jay":'周杰伦', "jj":"林俊杰 ", "jack": "莱昂纳多迪卡普里奥"}

# 清空字典

# dic.clear()

# for k in dic: # dictionary changed size during iteration

# dic["haha"] = "王大锤"

# 将要删除的内容在列表中保存

lst = [] # 所有的key

for k in dic:

lst.append(k)

for el in lst:

dic.pop(el)

print(dic)

## formkeys 坑

# fromkeys() 帮我们创建字典

# 正确用法

d = dict.fromkeys("周杰伦", "王尼玛")

print(d)

# 坑1

dic = {}

# fromkeys是创建新字典。 不是在原有的基础上给你增加键值对

d = dic.fromkeys("周杰伦", "王尼玛") # fromkeys是一个staticmethod 静态方法.

# dd = dict()

# ddd = {}

print(d) # {'周': '王尼玛', '杰': '王尼玛', '伦': '王尼玛'}

print(dic) # {}

# # 坑2

# 你的value如果是可变的数据类型。 所有的key都可以改动这个数据。 一个改动, 所有的value都跟着改变

d = dict.fromkeys("周杰伦",["哇哈哈"])

print(d) # {'周': ['哇哈哈'], '杰': ['哇哈哈'], '伦': ['哇哈哈']}

d["周"].append("爽歪歪")

print(d) # {'周': ['哇哈哈', '爽歪歪'], '杰': ['哇哈哈', '爽歪歪'], '伦': ['哇哈哈', '爽歪歪']}

print(id(d["周"]), id(d["杰"]), id(d["伦"])) # 4524578248 4524578248 4524578248

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值