本系列定位为复习笔记,某些内容并未提及。
在此记录一些典型疑问和我在学习中的问题或经常遗忘的细节,也会添加一些觉得有意思的部分(其实就是随心所欲 )
内容主要使用代码进行传达
字符串
字符串的索引和切片
与列表完全相同
字符串与元组tuple一样没有内置的修改方法,是不可变的数据类型:
字符串修改:
>>> s = "ABCDEFGH"
>>> s1 = s[:4] + "123" + s[4:]
>>> s1
'ABCD123EFGH'
字符串转义
原始字符串,同时最后还要加个反斜杠的方法:
str = r'C:\Program Files\FishC\Good''\\'
字符串内置方法:
格式化:
>>> "{0} love {1}.{2}".format("I", "Jacky", "com") #位置参数
'I love Jacky.com'
>>> "{a} love {b}.{c}".format(a= "I", b= "Jacky", c= "com") #关键字参数
'I love Jacky.com'
# 使用混合参数时,位置参数必须在关键字参数之前,否则将会报错
>>> "{0} love {b}.{c}".format("I", b= "Jacky", c= "com")
'I love Jacky.com'
>>> "{a} love {b}.{0}".format(a= "I", b= "Jacky","com")
SyntaxError: positional argument follows keyword argument
>>> "{{0}}".format("不打印")
'{0}'
>>> "{0}:{1:.2f}".format("圆周率",3.1415923653)
'圆周率:3.14'
#冒号表示格式化的开始,".2"的意思是四舍五入到保留两位小数点,而f的意思是浮点数
序列
filter lambda map与列表推导式,3元判断符
>>> list(filter(lambda x : 1 if x%3==0 else 0,range(0,101) ))
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
>>> [x for x in range(0,101) if x%3==0]
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
>>> [x%3 for x in range(0,101) if x%3==0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>>list(map(lambda x:[x**2,x],range(11)))
[[0, 0], [1, 1], [4, 2], [9, 3], [16, 4], [25, 5], [36, 6], [49, 7], [64, 8], [81, 9], [100, 10]]
>>>list(zip([1,3,5,7,9],[2,4,6,8,10]))
[(1,2),(3,4),(5,6),(7,8),(9,10)]
>>>list(map(lambda x,y:[x,y],[123,1234,231,123],[123,123,342,3456143,2,25]))
[[123, 123], [1234, 123], [231, 342], [123, 3456143]]
#map()后面可以接受多个序列作为参数