list 列表
列表内可以存放任何类型的数据(整形-int、字符串-str、元组-tuple、列表-list、字典-dict等)
# 假装原先列表为这样
li = ["aa", "bb", "cc", "dd", 11, 22, 33, 44, "aa"]
append 向后追加元素
#1、向后追加元素 - (append中不会解译里面的元素,会将其当作一个整体添加进原先的列表(list)中)
li.append(["张国荣", "林正英"])
print(li)
>> ['aa', 'bb', 'cc', 'dd', 11, 22, 33, 44, 'aa', ['张国荣', '林正英']]
li.append("僵尸先生")
print(li)
>> ['aa', 'bb', 'cc', 'dd', 11, 22, 33, 44, 'aa''僵尸先生']
extend 扩展元素
我用的地方:有多个不同的列表,我最后只需要一个完整的列表,
#2、扩展元素 - (extend会解译你给的元素,再整合进你原先的列表中)
# extend方法里可以放任何可迭代的对象(你能用for循环打印的都可以),所以可以扩展列表(oth_li)、元组(oth_tup)、字符串(oth_str)等
# XX.extend(可迭代对象)
oth_li = ["张国荣", "林正英"]
li.extend(oth_li)
print(li)
>> ['aa', 'bb', 'cc', 'dd', 11, 22, 33, 44, 'aa', '张国荣', '林正英']
oth_tup = ("僵尸道长", "风月")
li.extend(oth_tup)
print(li)
>> ['aa', 'bb', 'cc', 'dd', 11, 22, 33, 44, 'aa', '僵尸道长', '风月']
oth_str = "鬼魔尸"
li.extend(oth_str)
print(li)
>> ['aa', 'bb', 'cc', 'dd', 11, 22, 33, 44, 'aa', '鬼', '魔', '尸']
insert 元素插入指定的位置
#3、将元素插入指定的位置
li.insert(1, "幽冥诡匠")
print(li)
>> ['aa', '幽冥诡匠', 'bb', 'cc', 'dd', 11, 22, 33, 44, 'aa']
index 查看元素的位置
#4、查看元素的位置,没有则报错
# XX.index(你要查询的元素, 起始位置, 结束位置)
# 查询“aa”在哪个位置,默认返回出现第一次的位置
index_nu = li.index("aa")
print(index_nu)
>> 0
# 查询“aa”在哪个位置,且从索引为1向后查
index_nu = li.index("aa", 1)
print(index_nu)
>> 8
# 查询“aa”在哪个位置,且从索引为1到4中查找
index_nu = li.index("aa", 1, 4)
print(index_nu)
>> 会报错 - ValueError: 'aa' is not in list
pop 返回并删除某个元素
我用的地方:要处理一个列表中的数据,我拿出来的数据要执行,执行完一个就要删除掉一个,直到最后没有数据要处理了。
# 5、返回并删除某个元素,没有则报错
# XX.pop(索引【没有默认删除最后一个】)
character = li.pop()
print(character)
print(li)
>> aa
>> ['aa', 'bb', 'cc', 'dd', 11, 22, 33, 44]
character = li.pop(1)
print(character)
print(li)
>> bb
>> ['aa', 'cc', 'dd', 11, 22, 33, 44, 'aa']
character = li.pop(99)
print(character)
print(li)
>> 报错 IndexError: pop index out of range
remove 删除某个元素,不返回
# 6、指定删除某个元素,但不会有返回值
character = li.remove("aa")
print(character)
print(li)
>> None
>> ['bb', 'cc', 'dd', 11, 22, 33, 44, 'aa']
count 查看某个元素出现的次数
我用的地方:
1、count :爬虫爬取的很多数据追加到列表中,我想知道某个数据出现了多少次
2、Counter:我没有特意想知道某个数据出现多少次,但是想知道爬取了哪些数据,且各个数据出现的次数
# 7、查看某个元素(你要知道这个元素)出现的次数
# XX.count(元素)
nu = li.count("aa")
print(nu)
>> 2
# 还有个方法
# 这样我把列表变成字典,我就可以知道所有的元素【通过dict.keys()的方法】
from collections import Counter
c = Counter(li)
c_dict = dict(c)
print(c_dict)
>> {'aa': 2, 'bb': 1, 'cc': 1, 'dd': 1, 11: 1, 22: 1, 33: 1, 44: 1}
排序 sort-正序 reverse-倒序
# 但是之前的列表有字符串和整数无法比较排序
li.sort()
# 倒序就是单纯的反过来
li.reverse()
print(li)
>> ['aa', 44, 33, 22, 11, 'dd', 'cc', 'bb', 'aa']
切片 截取指定的某段作为新的列表
# 截取某段作为新的列表
# li[开始索引:结束索引]
# 从索引0到索引2的数据
new_li = li[:3]
print(new_li)
>> ['aa', 'bb', 'cc']
# 从索引1到索引2的数据
new_li = li[1:3]
print(new_li)
>> ['bb', 'cc']
# 从索引1到后面的数据
new_li = li[1:]
print(new_li)
>> ['bb', 'cc', 'dd', 11, 22, 33, 44, 'aa']
# 从倒数第3个到最后 - 在需要最后几个但是不知道到底有多长的情况下就这样写
new_li = li[-3:]
print(new_li)
>> [33, 44, 'aa']