18/5/2 列表、元组的增删改查。range

一、列表称之为容器型数据类型
  li = [123,'老男孩',True,[1,2,3],{'name':'alex'},(1,2,3)]
    数字,字符串,bool,列表,字典,元组。。
  #列表可以和字符串一样,按照索引,切片取值
    1)按索引 取值
l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
print(l1[1],type(l1[1]))

True <class 'bool'>

      2)按切片取值

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
print(l1[1:3])

[True, 'alex']

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
print(l1[::-2])                    #还有步长

['taibai', 'laonanhai', True]

  1、增

    append 追加   【格式: 列表.append(追加内容,仅限一个)】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1.append(123)                          #这只是一个动作
print(l1)

['wushr', True, 'alex', 'laonanhai', 'ritian', 'taibai', 123]

        l1.append   这是一个动作,不能打印,不能更改

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
print(l1.append('女神'))

None    #没有返回值

 例题:输入新员工的姓名,再按Q(q)键退出,不区分大小写  

    insert 插入  【格式: 列表.insert(索引,插入的内容仅限一个)】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1.insert(1,123)
print(l1)

['wushr', 123, True, 'alex', 'laonanhai', 'ritian', 'taibai']
#你要插入的内容会出现在索引号的前面

    extend 迭代着追加 【格式: 列表.extend([内容])】

      事实上并没有要求加“[]”,但是如果不加会出现,你追加的内容以最小元素加入列表

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1.extend('asd')     #没有加“[]”
print(l1)

['wushr', True, 'alex', 'laonanhai', 'ritian', 'taibai', 'a', 's', 'd']
#'asd'分开成最小元素加入列表

添加“[]”

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1.extend(['asd'])              #添加了"[]"
print(l1)

['wushr', True, 'alex', 'laonanhai', 'ritian', 'taibai', 'asd']
#元素'asd'没有被拆散

  2、删

    pop 按照索引去删除,有返回值 【格式:列表.pop(索引)】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
n = l1.pop(0)        #输出返回值
print(n)
print(l1)

wushr                #返回值为  wushr
[True, 'alex', 'laonanhai', 'ritian', 'taibai']

    remove 按照元素删除 【格式:列表.remove(所需要删除的内容)】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1.remove(True)      #删除元素True
print(l1)

['wushr', 'alex', 'laonanhai', 'ritian', 'taibai']

    clear 清空列表,但列表还存在,只是没内容了【格式:列表.clear()】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1.clear()
print(l1)

[]          #列表已被清空,但列表还在

    ##  del  ##

      1.在内存级别删除列表【彻底删除】 【格式:del 列表】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
del l1
print(l1)

NameError: name 'l1' is not defined  #列表已被删除

      2.按照索引删除。    【格式:del 列表[索引]】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
del l1[1]
print(l1)

['wushr', 'alex', 'laonanhai', 'ritian', 'taibai']  #元素“True”删除

      3.切片删除+步长 【格式:del 列表[首索引:尾索引:步长]】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
del l1[::2]        #每隔一个删除
print(l1)

[True, 'laonanhai', 'taibai']

  3、改

    按照索引去改

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1[0] = '晓峰'
print(l1)

['晓峰', True, 'alex', 'laonanhai', 'ritian', 'taibai']

    按照切片去改,先将切片内的内容全部删除,在迭代着添加内容

 
l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
l1[:3] = '跨世纪'                           #如果只是这样
print(l1)

['', '', '', 'ritian', 'taibai']      #跨世纪就会分开进入加入 l1 列表这一点和 “增” 的 extend  很像

#正确做法:

l1[:3] = ['跨世纪',111]                     #添加 “[]” 保护你要添加的内容
print(l1)

['跨世纪', 111, 'laonanhai', 'ritian', 'taibai']

  4、查

    1.按照索引切片去查

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
print(l1[0])             #索引
print(l1[:5])            #切片

wushr
['wushr', True, 'alex', 'laonanhai', 'ritian']

    2.for 循环 也可以查阅

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
for i in l1:
        print(i)

  5、其他操作方法

    1.  len  个数,总长度 【格式:len(列表)】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
cou = len(l1)
print(cou)

6

    2.  count  元素个数 【格式:列表.count(检测的元素)】

l1 = ['wushr',False,'alex','laonanhai','ritian','taibai',1,1,1,1]
z = l1.count(1)
print(z)

4

特例: True  和  1

l1 = [1,1,1,1,True,True,True,True]
z = l1.count(1)
print(z)

8  #我们知道只有4个1,但在计算机里True也是1

    3.  index  通过元素找索引,可切片,找不到报错 【格式: 列表.index(检测的元素)】

      【find只适用于字符串】

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
cou = l1.index('alex')
print(cou)

2             #该元素在第二位

l1 = ['wushr',True,'alex','laonanhai','ritian','taibai']
cou = l1.index('alex',3)
print(cou)

ValueError: 'alex' is not in list  #报错

  6、排序,翻转

    a = [1,3,5,9,7,6,2,4,8]

      1.sort  从小到大,正序排序 【格式:列表.sort()】

a = [1,3,5,9,7,6,2,4,8]
a.sort()
print(a)

[1, 2, 3, 4, 5, 6, 7, 8, 9]

      2.sort(reverse【相反,倒序】= True) 从大到小,倒序排列

a = [1,3,5,9,7,6,2,4,8]
a.sort(reverse=True)  #在原基础上加“reverse=True”
print(a)

[9, 8, 7, 6, 5, 4, 3, 2, 1]

      3.reverse 翻转  【格式:列表.reverse()】

a = [1,3,5,9,7,6,2,4,8]
a.reverse()
print(a)

[8, 4, 2, 6, 7, 9, 5, 3, 1]

列表的嵌套:

    现将列表 l1里的内容全部排列出来,包括小列表里的内容

  我想将上面列表中的 99 换成字符串 '100' 该怎么做

l1 = ['wusir','alex',[99,'taibai','98'],21]               #l1[2]表示  [99,'taibai','98'] . l1[2][0] 表示 [99,'taibai','98'] 里的 99

l1[2][0] = '100' print(l1)

['wusir', 'alex', ['100', 'taibai', '98'], 21]

二、元组

  元组  只读列表,不能增删改,只能查询

    1.索引,切片,步长

tu = (1,3,5,9,7,6,2,4,8)
print(tu[2])
print(tu[::2])

5
(1, 5, 7, 2, 8)
#可以执行 for 循环,查询

    2. index(通过元素找索引),len(计算字符串的长度即总个数) count(计算某元素出现的个数)

    3.元组中的元素只能查阅,不能更改,但是如果元组当中有列表,字典之类的,可以进行更改【即 :儿子不能改,但孙子能改】

tu = ('wushr','alex',[22,44,'taibai'])
tu[0].append('女神')                                       #追加‘女神’
print(tu)

AttributeError: 'str' object has no attribute 'append'     #报错

tu = ('wushr','alex',[22,44,'taibai'])
tu[-1].append('女神')
print(tu)

('wushr', 'alex', [22, 44, 'taibai', '女神'])              #追加成功

    4.删除元组 del :将元组彻底删除

tu = ('wushr','alex',[22,44,'taibai'])
del tu
print(tu)

NameError: name 'tu' is not defined   #元组被彻底删除了

三、range  常被当作自定义的数字范围的列表  【格式:起始位,末位,步长】

  满足顾头不顾腚,可以加步长,常与 for 循环结合使用

for i in range (1,11,2):    #(1,11,2)
    print(i)

1
3
5
7
9
 

猜你喜欢

转载自www.cnblogs.com/songzijian/p/8981825.html