python入门学习教程之List(列表)

单引号 双引号

如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。
如果你前面带有 \ 的字符被当作特殊字符,你可以使用 原始字符串,方法是在第一个引号前面加上一个 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]  #删除01元素 :号:左闭右开
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是否在列表中,并返回TrueFalse
'a' not in a_list //判断a是否不在列表中,并返回TrueFalse
  • 统计指定值在列表中出现的次数,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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值