python-day4-列表、元祖操作

今日大纲:

1.初识列表

2.列表的切片

3.列表的常用操作

4.列表的嵌套

5.range

6.元祖

 

1.初识列表

  列表是容器类型数据,可以放各种数据在这个列表里。

  列表是以括号组成,每个元素以逗号(,)区分,以索引来取数据,索引从0开始,列表是有序的,可以存放大量数据。

2.列表的切片操作:

  列表的切片操作和字符串类似。

>>> a
[1, 2, 3, 4, 5]
>>> a[0]
1
>>> a[-1]
5
>>> a[:3]
[1, 2, 3]
>>> a[:-1]
[1, 2, 3, 4]
>>> a[:-1:2]
[1, 3]
>>> a[-1::-1]
[5, 4, 3, 2, 1]
#切片赋值操作需要注意的:
>>> a[:3] = 'abc'
>>> a
['a', 'b', 'c', 4, 5]
>>> a[:3] = 'abcdefg'  #虽然取3个元素赋值,但是在赋值字符串时候,是以迭代每个字符添加进去的
>>> a
['a', 'b', 'c', 'd', 'e', 'f', 'g', 4, 5]
>>> a
[1, 2, 3, 4, 5]
>>> a[::2]
[1, 3, 5]
>>> a[::2] = 'abc'
#切片+步长操作赋值需要注意的:
>>> a
['a', 2, 'b', 4, 'c']
>>> a[::2] = ['a','b','c','d']     #取到几个就几个赋值,一一对应
Traceback (most recent call last):
File "<pyshell#103>", line 1, in <module>
a[::2] = ['a','b','c','d']
ValueError: attempt to assign sequence of size 4 to extended slice of size 3
>>> a[::2] = ['a','b','c']
>>> a
['a', 2, 'b', 4, 'c']

 

3.列表的常用操作

增:

insert(index,value)    #按索引插入数据

append(value)   #插在列表末尾最后一个

extend(iterable)    #迭代插入,添加在末尾,可迭代对象如:列表,字符串等

删:

pop(index)    #删除列表该索引的元素,会返回元素,可以接着temp = list.pop(0)

remove(value)   #以元素值删除列表中的改元素

del list[index]    #以索引删除,可以用切片方式

clear()   #清空整个列表

改:

list[index] = value  #以索引方式修改数据,可以切片加步长修改,看上面的切片操作

查:

list[index]   #以索引方式查看数据,可以加切片加步长

其他:

index(value)   #返回元素的索引,找不到抛出ValueError

sort(reverse=False)   #排序列表元素(默认从小到大,reverse=True表示从大到小) ,注:列表中只能有数字,有字母抛出TypeError

reverse()    #反转列表,无关字母数字的问题

count(value)   #计value在该列表中的重复次数

 

4.列表的嵌套

   列表中的列表。

替换列表元素操作:

1.通过元素下标来替换

  list[index][index] = value

2.通过递归修改

def replace_list(list1,old,new):
    temp = list1
    for i in list1:
        if type(i) is list:
            replace_list(i,old,new)
        elif i == old:
            temp[temp.index(i)] = new

list1 = [1, 2, 3, [2, 3, [6, 6, 8], 4, 5, 6]]
replace_list(list1, 6, '')
print(list1)

result: 
[1, 2, 3, [2, 3, ['', '', 8], 4, 5, '']]

 3.通过堆栈方式修改

def update_list(lis,old_ele,new_ele):
    list2 = [lis]   # list2为堆栈列表
    while list2:    # 如果栈为空结束循环
        temp = list2.pop()   # 每次弹出栈顶元素
        for i in range(len(temp)):   # 以索引循环
            if temp[i] == old_ele:   # 如果元素是要修改的,则进行修改
                temp[i] = new_ele
            elif type(temp[i]) == list:   # 如果元素是列表,就把该列表压栈
                list2.append(temp[i])

list1 = [1, 2, 3, [2, 3, [6, 6, 8], 4, 5, 6]]
old_ele = 6
new_ele = ''
update_list(list1,old_ele,new_ele)
print(list1)
'''
result:
[1, 2, 3, [2, 3, ['改', '改', 8], 4, 5, '改']]
'''

 

5.range

   一般是和for搭配使用。

格式:

range(10)       #0到9

range(1,10)     #1到9,顾头不顾尾

range(1,11,2)   #1到10,步长为2

range(10,0,-1)   #10到1(倒序),-1步长很重要,默认为1是正序

 

6.元祖

   不可以修改,删除元素,只能查看。

方法:

count(value)    #计value在元祖重复的次数

index(value)   #返回元素下标,找不到抛出ValueError

 

 

 

 

转载于:https://www.cnblogs.com/zezhou/p/10475084.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值