人生最大的遗憾,不是你错过了多少人
我们一生中会遇见许多人,有些人教会我们爱、关心、陪伴,有些人则让我们感受什么是挫败、难过、受伤,但最终随着时间的流逝,大部分人都渐行渐远,最后留下的只剩我们自己。
曾经我们因为在意别人的感受,而让自己受伤;
曾经我们因为想要去讨好别人,却忽视自己真正想要的是什么;
曾经我们以为让所有人喜欢自己就是最棒的事情,最后才发现最不喜欢自己的人那个人,就是自己……
人生中最大的遗憾不是你错过了多少人,而是你不知道自己有多珍贵。
所以,人生的旅程也是我们不断寻找自己的旅程,当我们真正找到自己,建立起属于自己的自爱系统,就可以看到自我当下的转变。
-2-一个人真正的自由,就是为自己做出选择
罗伯特·班尼特说:“你的人生是你做出的所有选择的汇总。如果你能控制选择的过程,那么便能控制你人生的所有方面。通过对自己负责,你会获得自由。”
因此,一个人真正的自由,就是有能力为自己做出选择。选择喜欢的生活方式、选择欣赏的伴侣、选择热爱的工作……然后为自己的选择负责。
我们将会拥有怎样的生活,很大程度上取决于你自己想要拥有怎样的人生。如果你不给自己设限,年龄、外貌、性别……这些都不会打败你,你也将收获更为广阔的未来。
爱自己,是每个人天生都有的能力,只是我们需要练习才能学会。
用好字典的关键在于Key
字典不会用,基本就不会编程,字典非常重要;
1.字典中的元素访问--三种方式
- d[key]
key不存在返回KeyError ;- get(key[,default])
key不存在返回缺省值,没有设置返回缺省值;- setdefault(key[,default])
key不存在,添加KV对,value为default,没有设置返回缺省值;
2.字典的删除;
- pop(key[key,default])
key 存在,移除它,返回它的value;
key不存在返回default ;
default未设置,Key不存在则抛出KeyError异常;- popitem()
移除并返回一个任意的键值对;
字典为empty,抛出KeyError 异常;- clear()
清空字典
3.字典的遍历
使用for key, value in dict.items()可以遍历整个字典。如果你只喜欢遍历键名或值,你可以只使用for key in dict.keys()或 for value in dict.values()。
# 1. 遍历 keys-value
for key, value in d1.items():
print("{}->{}".format(key, value))
for key, _ in d1.items(): #丢弃一项;
print(key)
# 2. 遍历key
for key in d1.keys():
print(key,type(key)) # str / int
for k in d:
print(d[k])
# 3. 遍历value
for value in d1.values():
print(value)
# 4. 遍历item,即kv对;
for item in d.items():
print(item)
print(item[0],item[1])
5. 通用写法:一般不会出现异常;
for k in d: # 遍历输出的是字典的keys ;
print(d[k])
字典总结:
1. Python3中,字典keys\values\items 方法返回一个类似一个生成器的可迭代对象;不会把函数的返回结果复制到内存中;不会产生内存copy,节省内存空间;
d={}
type(d.items()) # dict_items([])
2. Python2中,上面的方法返回一个新的列表,占据新的内存空间,所以Python2建议使用iterkeys、
3.用好字典的关键在于Key
3.1 字典循环移除元素——移除字典中值为字符串的一项
d=dict(a=1,b=2,c=3,d='str1')
print(d)
lst=[]
i=''
for k in d.keys():
print(k)
if isinstance(d[k],str):
lst.append(k)
d.pop(lst[0])
d
循环内增加、删除value时不允许的;pop会在循环内报错;
for k in d: # 增加元素; dictionary changed size during iteration;
d['a00']=100
4.缺省字典 collections.defaultdict([default_factory[,...]])
第一个参数时default_factory,缺省为None,它提供一个初始化的函数,当key不存在的时候,这个工厂函数来生成key对应的value
方法1:
import random
from collections import defaultdict
d=defaultdict(list)
for c in 'abcde':
for i in range(random.randint(1,5)):
if d[c] not in d:
d[c]=[]
d[c].append(i)
print(d)
方法2,3:
import random
d={}
for c in 'abcde':
for i in range(random.randint(1,5)):
if not d.get(c): # if c not in d.keys():
d[c]=[]
d[c].append(i)
print(d)
总结:
1.
import random
from collections import defaultdict
d=defaultdict(list)
#等价于 d[c]=[]
if d[c] not in d:
d[c]=[]
总结
1.缺省字典中很多源码都在用;
2.字典为空dict 时,append会报错;缺省字典相当于添加一个空list ;
5.有序字典 OrderedDict (3.6.3版本才出现的;Ipython不会显示;原生Python才行)
记录Key插入的顺序;
# 有序字典的创建;
from collections import OrderedDict
d1 = OrderedDict()
d = {}
d['Tom']='A'
d['Jack']='B'
d['Leo']='C'
d['Alex']='D'
print('无序字典(dict):')
for k,v in d.items():
print(k,v)
d1 = OrderedDict() # 保证写入顺序
d1['Tom']='A'
d1['Jack']='B'
d1['Leo']='C'
d1['Alex']='D'
print('\n有序字典(OrderedDict):')
for k,v in d1.items():
print(k,v)
---------------------------------
无序字典(dict):
Leo C
Jack B
Tom A
Alex D
有序字典(OrderedDict):
Tom A
Jack B
Leo C
Alex D
网友评论