列表的常规操作

列表的增删改

1、索引取值(正反都可以),不仅可以取还可以存  (字符串不只可以取,不可以存)

l1 = [1,2,3,4,5,6]
print(l1[2])
l1[2] = 3333
print(l1)

2.索引切片

print(l1[1:3])
反向切片取奇数
 a[::-1]



sorted(a)

取奇数
d = a[::2]

3.insert、 append、 extend 

# 、 insert
l1.insert(1,999)
print(l1)

# 追加:append  追加值。注意与extend()的区别,只能添加到列表的最后一位,一次性只能添加一个值(可以是一个字符,列表)
print(l1.append([7,8,9]))
[1, 999, 2, 3333, 4, 5, 6, [7, 8, 9]]
# 注意append 与 extend的区别 extend 分开多次追加 l1.extend([7,8,9]) print(l1)
[1, 999, 2, 3333, 4, 5, 6, [7, 8, 9], 7, 8, 9]



4. remove && pop

# remove  指定值删除,比较彻底
l1.remove(1)
print(l1)

# pop()  : 不传值,默认从最后开始删,指定索引删值,pop是有返回值的
l1.pop()
val = l1.pop()
print(val)    # 返回值 为何是8
l1.pop(2)
print(l1)

 5.查找元素的索引位置

l1 = ['oldboy','yangjian','nezha','leizhenzi']
print(l1.count('oldboy'))
# 查找元素的索引位置   也可以在起止范围查找
print(l1.index('nezha'))

6. 排序:sort    在原有列表中进行排序操作 没有返回值

l1.sort(reverse = False)
print(l1)

7.  sort 与 sorted sort是列表的内置方法,在原有的列表排序,不会生成新的列表,sorted(l1)会生成新的列表

l2 = sorted(l1)
print(l2)

8. clear  清除

l1.clear()
print(l1)

 9. copy &&  deepcopy

   浅拷贝

lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]]
print(lst1.copy())  #浅拷贝  拷贝出来的列表第一层与原来是不同的内存地址,第二层指向原来的地址 
>>>
['金毛狮王', '紫衫龙王', '青翼蝠王', '白眉鹰王', ['张无忌', '赵敏', '周芷若']] 
print(lst1[:]) #浅拷贝  
>>> 
['金毛狮王', '紫衫龙王', '青翼蝠王', '白眉鹰王', ['张无忌', '赵敏', '周芷若']]

  深拷贝

lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]]
lst2 = copy.deepcopy(lst1)
print(lst2)   >>>  ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]]
print(id(lst1)) >>> 358961124936
print(id(lst2)) >>> 358961315656
# lst1和lst2 是两个不同内存地址的

 

posted @ 2019-11-05 19:35  躺云飘  阅读(228)  评论(0编辑  收藏  举报