前言

        话不多说,直接上代码。。。

1.多个列表合并为一个

a = [1, 2, 3]
b = ["a1", "b1", "c1"]
c = ['张三', '李四', '王五']

# 1直接相加合并
sums1 = a + b + c
print(sums1)    # 结果是:[1, 2, 3, 'a1', 'b1', 'c1', '张三', '李四', '王五']

# 2使用extend方法,该方法会覆盖原始列表
a.extend(b) # 此时a列表已经和b合并为一个新的a列表
print(a)    # 结果是:[1, 2, 3, 'a1', 'b1', 'c1']

a.extend(c) # 再与c合并,最终的a是a,b,c三个列表的总和
print(a)    # 结果是:[1, 2, 3, 'a1', 'b1', 'c1', '张三', '李四', '王五']

# 3使用切片方法,会直接在源列表修改插入
a[1:1] = b  # 会在a列表的第二个元素位置插入列表b
print(a)    # 结果:[1, 'a', 'b', 'c', 2, 3]

a[1:2] = b  # 会将a列表的第二个元素替换插入列表b
print(a)    #  结果:[1, 'a', 'b', 'c', 3]

2.列表排序

#1.从小到大排列
print(sorted([36,5,-21,1,4,25]))    # 结果是:[-21, 1, 4, 5, 25, 36]

#2.将待排序的数放到key中的函数,再进行比较排序
print(sorted([36,5,-21,1,4,25],key=abs))    # 结果是:[1, 4, 5,-21, 25, 36]

#3.字符串排序:通过ASCII方式比较第一个字母值排序,加反向排序
print(sorted(["ad","bd","cw","d"],key=str.lower,reverse=True))
# 结果是:['d', 'cw', 'bd', 'ad']

3.列表去除重复元素

# 需要去除重复元素的列表,字符列表同样适用下面的方法
lst = [1,2,3,4,3,2,3,23,4,4,6,7,8,9]

# 方法1:用内置函数set(),该函数可创建一个无序不重复元素集,删除重复数据
lst1 = list(set(lst))    # set函数会产生一个集合类型的数据,需要用list函数把它转成列表
print(lst1)    # 结果是:[1, 2, 3, 4, 6, 7, 8, 9, 23]

# 方法2:遍历列表去除重复元素
lst2 = []
for i in lst:
    if not i in lst2:    # (if i not in lst2:)语句效果一样
        lst2.append(i)
print(lst2)    #结果是:[1, 2, 3, 4, 23, 6, 7, 8, 9]

#方法3:列表推导式
lst3 = []
[lst3.append(i) for i in lst if i not in lst3]
print(lst3)    #结果是:[1, 2, 3, 4, 23s, 6, 7, 8, 9]

4.统计列表中元素的重复次数

# 1.统计某个元素在列表中出现的次数,使用列表的count()方法
lst = [1, 2, 3, 4, 3, 3, 4, 4, 4, 4, 4, 'null', 'null', 3]
print("‘null’有:%s个!" % lst.count('null'))    # 结果是:‘null’有:2个!

# 2.统计列表中各元素的出现次数(重复次数)
"""
Counter 是 dictionary 对象的子类。collections 模块中的 Counter() 函数
会接收一个诸如 list 或 tuple 的迭代器,然后返回一个 Counter dictionary。
这个 dictionary 的键是该迭代器中的唯一元素,每个键的值是迭代器元素的计数。
"""
from collections import Counter    # 从 collections 包中导入 Counter
lst1 = [1, 2, 3,3,4,"mm","mm"]
result = Counter(lst1)      # 返回列表各元素和元素在列表中的出现次数
for i in result.items():    # 用字典方法遍历,(键:值)=== (列表元素:出现次数)
    print(i,end=" ")        # 结果是:(1, 1) (2, 1) (3, 2) (4, 1) ('mm', 2)

5.找出列表中相同和不同的元素

lst1 = ['小李', '小张', '小王']
lst2 = ['小强', '小红', '小王']

a = [x for x in lst1 if x in lst2]              # 两个列表都存在的元素
b = [y for y in (lst1 + lst2) if y not in a]    # 两个列表中不同的元素
c = [x for x in lst1 if x not in lst2]          # 在列表lst1中而不在lst2的元素

        对于列表的一些常用技巧,先总结到这里。如果小伙伴们想要学习更多python的使用技巧可以进来主页查看噢。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐