python数据类型之列表list常用方法

列表-list
增 append insert extend
# append insert extend 增加
# append() 方法用于在列表末尾添加新的对象。
aList = [123, 'xyz', 'zara', 'abc']
aList.append(2009)
print("Updated List : ", aList)
# Updated List :  [123, 'xyz', 'zara', 'abc', 2009]

# insert() 函数用于将指定对象插入列表的指定位置。
# 语法:list.insert(index, obj)
aList = [123, 'xyz', 'zara', 'abc']
aList.insert(3, 2009)
print("Final List : ", aList)
# Final List :  [123, 'xyz', 'zara', 2009, 'abc']

# extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
aList = [123, 'xyz', 'zara', 'abc', 123]
bList = [2009, 'manni']
aList.extend(bList)
print("Extended List : ", aList)
# Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
删 remove del pop clear
# remove() 函数用于移除列表中某个值的第一个匹配项。
# remove按值匹配进行删除,不关心值所在列表的位置
aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.remove('xyz')
print("remove : ", aList)
aList.remove('abc')
print("remove : ", aList)
# remove :  [123, 'zara', 'abc', 'xyz']
# remove :  [123, 'zara', 'xyz']

# del() 根据索引删除,即删除某个位置的值,不关心值的内容
aList = [123, 'xyz', 'zara', 'abc', 'xyz']
del aList[0]
print("del : ", aList)
# del :  ['xyz', 'zara', 'abc', 'xyz']

# pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
list1 = ['Google', 'Runoob', 'Taobao']
list_pop=list1.pop(1)
print("删除的项为 :", list_pop)
print("列表现在为 : ", list1)
# 删除的项为 : Runoob
# 列表现在为 :  ['Google', 'Taobao']

# clear()  清空列表
RUNOOB = [6, 0, 4, 1]
print('清空前:', RUNOOB)
RUNOOB.clear()
print('清空后:', RUNOOB)
# 清空前: [6, 0, 4, 1]
# 清空后: []
改 列表[下标]=值
# 按下标修改 列表[下标] = 值
a = [5, 2, 3, 1, 4]
a[1] = 6
print("修改后的列表a:", a)    # [5, 6, 3, 1, 4]
查 下标index
a = ["a", "s", "d", "f", "g"]
# 按下标查询元素内容
print("列表a的第二位元素为:", a[1])   # s
# 按元素内容定位元素的下标
print("查询元素d在列表中的下标:", a.index("d"))  # 2
# 查询当前元素后将其修改
a[a.index("f")] = "修改f"
print(a)  # ['a', 's', 'd', '修改f', 'g']
排序 sort sorted
# sorted() 函数 对列表进行排序,并返回一个新的列表
a = [5, 2, 3, 1, 4]
b = sorted(a)
print("排序后的列表:", b)     # 排序后的列表: [1, 2, 3, 4, 5]

# list.sort() 方法,它会直接修改原列表(并返回 None 以避免混淆),通常来说它不如 sorted() 方便 ——— 但如果你不需要原列表,它会更有效率。
print(a.sort())     # None
print(a)        # [1, 2, 3, 4, 5]
# list.sort()方法只是为列表定义的,而sorted()函数可以接受任何可迭代对象。
print(sorted({1: 'D', 6: 'B', 3: 'B', 4: 'E', 5: 'A'}))     # [1, 3, 4, 5, 6]

# list.sort() 和 sorted() 都有一个 key 形参来指定在进行比较之前要在每个列表元素上进行调用的函数
# 自定义排序 sorted(list, key=lambda x: x[1])
# key=lambda lambda是一个隐函数,是固定写法,不要写成别的单词;
# x表示列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;x[0]表示元组里的第一个元素,当然第二个元素就是x[1];
a = [(1, 'A', 15), (3, 'C', 12), (5, 'B', 10)]
b = a.sort(key=lambda x: x[1])   # 按照列表中第一个元素排序 # 排序后,a:[(1, 'A', 15), (5, 'B', 10), (3, 'C', 12)]  b:None
c = sorted(a, key=lambda x: x[2])   # 按照列表中第三个元素排序 # [(5, 'B', 10), (3, 'C', 12), (1, 'A', 15)]
d = sorted(a, key=lambda x: x[2], reverse=True)  # 按照列表中第三个元素排序,并进行倒序排列 # [(1, 'A', 15), (3, 'C', 12), (5, 'B', 10)]
print(a, b, c, d)
倒序 [::-1]/reverse /reversed
lists = [1, 3, 2, 5, 4]
# 切片
print("切片:", lists[::-1])
# 函数reverse 对数组进行操作
lists.reverse()
print("函数reverse", lists)
# reversed() 按照列表元素进行反向排序 倒序
# 函数reversed 返回一个迭代对象,需要list化
print("函数reversed", list(reversed(lists)))
列表去重 fromkeys()/set/for循环
L = [1, 7, 9, 7, 5, 6, 6, 5, 4, 3, 2, 1]
# 利用字典的fromkeys()和keys()方法
# 创建一个空字典
d = {}
# 用字典的fromkeys()方法去重,得到一个字典,去重之后的元素为键,值为None的字典
L = d.fromkeys(L)
print(L)  # {1: None, 7: None, 9: None, 5: None, 6: None, 4: None, 3: None, 2: None}
# 用字典的keys()方法得到一个类似列表的东西,但不是列表。keys()函数返回的是一个dict_keys对象:
# 以字典的键作为元素的一个类列表
L = L.keys()
print(L)  # dict_keys([1, 7, 9, 5, 6, 4, 3, 2])

L = list(L)
print(L)  # [1, 7, 9, 5, 6, 4, 3, 2]

# 可以用列表的sort()方法排序,默认是升序
L.sort()
print(L)  # [1, 2, 3, 4, 5, 6, 7, 9]
L.sort(reverse=True)  # 降序
print(L)  # [9, 7, 6, 5, 4, 3, 2, 1]


# 使用set方法
L2 = [1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1]
L2=set(L2)  # 得到一个集合
print(L2)   # {1, 2, 3, 4, 5, 6}
print(type(L2))
L2 = list(L2)   # 将集合转化为列表
print(L2)  # [1, 2, 3, 4, 5, 6]


# 使用for循环
L3 = [1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1]
L4 = []
for x in L3:
    if x not in L4:
        L4.append(x)
print(L4)   # [1, 2, 3, 4, 5, 6]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值