单引号 双引号
如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。
如果你前面带有 \ 的字符被当作特殊字符,你可以使用 原始字符串,方法是在第一个引号前面加上一个 r:
>>> print('C:\some\name') # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name') # note the r before the quote
C:\some\name
字符串文本能够分成多行。一种方法是使用三引号:”“”…”“” 或者 ”’…”’。行尾换行符会被自动包含到字符串中,但是可以在行尾加上 \ 来避免这个行为。下面的示例: 可
以使用反斜杠为行结尾的连续字符串,它表示下一行在逻辑上是本行的后续内容:
print("""\
Usage: thingy [OPTIONS]
-h Display this usage message
-H hostname Hostname to connect to
""")
相邻的两个字符串文本自动连接在一起,不适用于字符串表达式(可用+号连接)
>>> 'Py' 'thon'
'Python'
列表
1.接口总览
len([1,’str’,])的返回值是2,后面多余的逗号不能算多了一个元素。
olist.append(x):添加一个元素到链尾。
olist.extend(olist):追加一个列表,等价于+=。
olist.insert(i,x):在位置i处插入x,其余向后退。大于列表长度在最后添加,小于0在开始处添加。
olist.remove(x):删除值为x的元素,长度减一,不存在抛出ValueError异常。
olist.reverse():在原序列上反转,返回值为None。
olist.pop([i]):返回并删除位置为i的元素,i默认为最后一个元素。
olist.index(i):返回x在列表中第一次出现的位置,不存在抛出ValueError异常。
olist.count(x):返回x在列表中出现的次数。
olist.sort():排序。
2.创建列表[]符号
直接创建:x=[1,2,3];
split:y='1 2 3'.split() #中间为空格 实测为“,”,得到的['1,2,3'] 而不是['1', '2', '3']
range:L3=list(range(3)) [0,1,2]
3.添加元素
append 原有列表末尾添加一个item
extend 在原有列表末尾添加若干个item,字符串将分解为字符列表
insert(n,’c’) //在原有列表的n位置添加一个item
a_list=[]
a_list.append('hello')
a_list.append(['hello'])
a_list.extend('hello')
a_list.extend(['hello'])
a_list.insert(0,'c')
a_list.insert(0,['c'])
print(a_list)
最后输出:[['c'], 'c', 'hello', ['hello'], 'h', 'e', 'l', 'l', 'o', 'hello']
4.删除元素
del删除。它按item的索引值或切片进行删除:
remove方法删除。它不按item索引,而是按照item的值进行删除:
pop方法删除。它按item索引值进行删除,同时返回被删除的item值;若不指定索引,默认删除最后一个item:
d1=['1','2','3','456789']
del d1[0]
print(d1) #['2', '3', '456789']
del d1[:2] #删除0到1元素 :号:左闭右开
print(d1) #['456789']
d1=['1','2','3','456789']
d1.remove('2')
print(d1) #['1', '3', '456789']
d1.remove('3')
print(d1) #['1', '456789']
d1=['1','2','3','456789']
d1.pop()
print(d1) #['1', '2', '3']
d1.pop(1)
print(d1) #['1', '3']
5.其他常用接口函数
- 通过索引进行元素的重新赋值:
a_list = ['a','b','c','hello']:
a_list[1] = 'bbb'
- 查看元素是否在列表中 使用in、 not in
a_list = ['a','b','c','hello']
'a' in a_list 判断值a是否在列表中,并返回True或False
'a' not in a_list //判断a是否不在列表中,并返回True或False
- 统计指定值在列表中出现的次数,count方法
a_list.count('a') //返回a在列表中的出现的次数
- 查看指定值在列表中的位置,index方法:
a_list.index('a') //返回a在列表中每一次出现的位置,默认搜索整个列表
a_list.index('a',0,3) //返回a在指定切片内第一次出现的位置
6.算法实例
反序输出 reverse()
d1=['1','2','3','456789'] d1.reverse() print(d1) 输出:['456789', '3', '2', '1']
- 排序
d1=[2,1,9,4,3,6,7,5,8]
d1.sort()
print(d1)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
- 遍历
python的列表list可以用for循环进行遍历,实际开发中发现一个问题,就是遍历的时候删除会出错,例如
l = [1,2,3,4]
for i in l:
if i != 4:
l.remove(i)
print(l)
输出 [2, 4]
这几句话本来意图是想清空列表l,只留元素4,但是实际跑起来并不是那个结果。再看下面,利用index来遍历删除列表l
l = [1, 2, 3, 4]
for i in range(len(l)):
if l[i] == 4:
del l[i]
print(l)
这样没问题,可以遍历删除,但是列表l如果变为 l = [1,2,3,4,5]
如果还是按照上面的方法,设想一下,range开始的范围是0-4,中间遍历的时候删除了一个元素4,这个时候列表变成了= [1,2,3,5],这时候就会报错了,提示下标超出了数组的表示,原因就是上面说的遍历的时候删除了元素
所以python的list在遍历的时候删除元素一定要小心
可以使用filter过滤返回新的list
l = [1,2,3,4]
l = filter(lambda x:x !=4,l)
print( l)
这样可以安全删除l中值为4的元素了,filter要求两个参数,第一个是规则函数,第二个参数要求输入序列,而lambda这个函数的作用就是产生一个函数,是一种紧凑小函数的写法,一般简单的函数可以这么些
或者可以这样
l = [1,2,3,4]
l = [ i for i in l if i !=4]//同样产生一个新序列,复值给l
print(l)